sea-chart 2.0.43 → 2.0.45

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.
Files changed (302) hide show
  1. package/dist/api/index.js +4 -11
  2. package/dist/components/cell-factory/FormatterConfig.js +55 -62
  3. package/dist/components/cell-factory/SimpleCellFormatter.js +4 -11
  4. package/dist/components/cell-factory/SingleSelectOption.js +11 -18
  5. package/dist/components/cell-factory/cell-editor-factory.js +5 -12
  6. package/dist/components/cell-factory/cell-formatter-factory.js +4 -11
  7. package/dist/components/cell-factory/link-content.js +27 -35
  8. package/dist/components/chart-color-selector/color-selector.js +11 -18
  9. package/dist/components/collaborator/index.js +7 -14
  10. package/dist/components/color-picker/index.js +11 -18
  11. package/dist/components/color-popover/color-rules/color-rule.js +25 -33
  12. package/dist/components/color-popover/color-rules/index.js +6 -14
  13. package/dist/components/color-popover/color-rules/rule-filters/filter.js +27 -34
  14. package/dist/components/color-popover/color-rules/rule-filters/index.js +17 -25
  15. package/dist/components/color-popover/color-rules/rule-filters/number-input.js +10 -18
  16. package/dist/components/color-popover/color-rules-popover.js +26 -34
  17. package/dist/components/color-popover/color-selector-popover.js +10 -18
  18. package/dist/components/color-setting/color-group-selector.js +12 -20
  19. package/dist/components/common-add-tool/index.js +6 -13
  20. package/dist/components/data-process-setter/data-setting-header.js +7 -14
  21. package/dist/components/data-process-setter/hide-column-setter.js +12 -19
  22. package/dist/components/data-process-setter/index.js +4 -27
  23. package/dist/components/data-process-setter/sort-setter.js +16 -24
  24. package/dist/components/draggable/Draggable.js +7 -13
  25. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +42 -50
  26. package/dist/components/drill-down-settings/drill-down-fields-settings/index.js +10 -18
  27. package/dist/components/drill-down-settings/index.js +11 -18
  28. package/dist/components/dtable-popover/index.js +13 -20
  29. package/dist/components/dtable-search-input/index.js +13 -21
  30. package/dist/components/font-settings/index.js +14 -22
  31. package/dist/components/goal-line-setting/goal-setting-item.js +6 -14
  32. package/dist/components/goal-line-setting/index.js +12 -19
  33. package/dist/components/highlighter/highlighter.js +7 -14
  34. package/dist/components/icon/index.js +4 -11
  35. package/dist/components/index.js +7 -48
  36. package/dist/components/loading/index.js +6 -13
  37. package/dist/components/number-input/index.js +4 -11
  38. package/dist/components/pixel-editor/index.js +15 -23
  39. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +8 -15
  40. package/dist/components/popover/hide-column-popover/hide-column-popover.js +25 -33
  41. package/dist/components/popover/sort-popover/sort-popover-widgets/sort-utils.js +9 -18
  42. package/dist/components/popover/sort-popover/sort-popover.js +54 -64
  43. package/dist/components/resize-handle/ResizeHandle.js +6 -13
  44. package/dist/components/row-card/row-card-header-cell.js +15 -22
  45. package/dist/components/row-card/row-card-header.js +14 -21
  46. package/dist/components/row-card/row-card-item.js +33 -41
  47. package/dist/components/row-card/row-card.js +15 -23
  48. package/dist/components/statistic-record-dialog/index.js +56 -64
  49. package/dist/components/tooltip/index.js +21 -21
  50. package/dist/components/types-dialog/index.js +56 -64
  51. package/dist/components/types-dialog/use-force-update.js +4 -10
  52. package/dist/constants/color-rules.js +8 -14
  53. package/dist/constants/common-constants.js +8 -14
  54. package/dist/constants/error.js +2 -8
  55. package/dist/constants/geolocation.js +9 -15
  56. package/dist/constants/index.js +149 -273
  57. package/dist/constants/key-codes.js +0 -2
  58. package/dist/constants/model.js +3 -9
  59. package/dist/constants/regions.js +3 -8
  60. package/dist/constants/style.js +6 -12
  61. package/dist/constants/table.js +1 -7
  62. package/dist/constants/type-image.js +33 -39
  63. package/dist/constants/type.js +3 -9
  64. package/dist/context.js +20 -24
  65. package/dist/editor/index.js +8 -15
  66. package/dist/index.js +13 -104
  67. package/dist/intl.js +10 -17
  68. package/dist/locale/index.js +16 -23
  69. package/dist/locale/lang/de.js +1 -7
  70. package/dist/locale/lang/en.js +1 -7
  71. package/dist/locale/lang/es.js +1 -7
  72. package/dist/locale/lang/fr.js +1 -7
  73. package/dist/locale/lang/pt.js +1 -7
  74. package/dist/locale/lang/ru.js +1 -7
  75. package/dist/locale/lang/zh_CN.js +1 -7
  76. package/dist/model/area-group.js +12 -19
  77. package/dist/model/area.js +12 -19
  78. package/dist/model/bar-custom.js +11 -18
  79. package/dist/model/bar-group.js +12 -19
  80. package/dist/model/bar-stack.js +10 -17
  81. package/dist/model/bar.js +11 -18
  82. package/dist/model/base-model.js +8 -11
  83. package/dist/model/basic-number-card.js +13 -20
  84. package/dist/model/chart.js +7 -13
  85. package/dist/model/combination.js +19 -22
  86. package/dist/model/compare-bar.js +14 -21
  87. package/dist/model/completeness-group.js +11 -18
  88. package/dist/model/completeness.js +10 -17
  89. package/dist/model/dashboard.js +7 -14
  90. package/dist/model/funnel.js +14 -21
  91. package/dist/model/generic-model.js +135 -143
  92. package/dist/model/heat-map.js +9 -16
  93. package/dist/model/horizontal-bar.js +15 -18
  94. package/dist/model/horizontal-group-bar.js +14 -17
  95. package/dist/model/index.js +69 -93
  96. package/dist/model/line-group.js +13 -20
  97. package/dist/model/line.js +12 -19
  98. package/dist/model/map-bubble.js +12 -19
  99. package/dist/model/map.js +12 -19
  100. package/dist/model/mirror.js +13 -20
  101. package/dist/model/pie.js +12 -19
  102. package/dist/model/ring.js +12 -19
  103. package/dist/model/scatter.js +10 -17
  104. package/dist/model/stacked-horizontal-bar.js +15 -18
  105. package/dist/model/table-element.js +5 -12
  106. package/dist/model/table.js +7 -14
  107. package/dist/model/tree-map.js +7 -14
  108. package/dist/model/trend.js +11 -18
  109. package/dist/model/user.js +1 -7
  110. package/dist/model/world-map-bubble.js +12 -19
  111. package/dist/model/world-map.js +12 -19
  112. package/dist/services/map-json.js +7 -13
  113. package/dist/settings/advance-bar-settings/data-settings.js +36 -44
  114. package/dist/settings/advance-bar-settings/index.js +3 -20
  115. package/dist/settings/advance-bar-settings/style-settings.js +83 -74
  116. package/dist/settings/bar-settings/data-settings.js +39 -47
  117. package/dist/settings/bar-settings/index.js +3 -20
  118. package/dist/settings/bar-settings/style-settings.js +69 -60
  119. package/dist/settings/basic-number-card/data-settings.js +49 -57
  120. package/dist/settings/basic-number-card/index.js +3 -20
  121. package/dist/settings/basic-number-card/style-settings.js +18 -26
  122. package/dist/settings/combination-settings/data-settings.js +55 -63
  123. package/dist/settings/combination-settings/index.js +3 -20
  124. package/dist/settings/combination-settings/style-settings.js +94 -77
  125. package/dist/settings/completeness-settings/callbacks/callbacks.js +16 -27
  126. package/dist/settings/completeness-settings/data-settings/completion-settings.js +21 -28
  127. package/dist/settings/completeness-settings/data-settings/data-settings.js +25 -32
  128. package/dist/settings/completeness-settings/index.js +3 -20
  129. package/dist/settings/completeness-settings/style-settings.js +19 -26
  130. package/dist/settings/dashboard-settings/data-settings.js +43 -51
  131. package/dist/settings/dashboard-settings/index.js +2 -13
  132. package/dist/settings/data-settings.js +72 -79
  133. package/dist/settings/funnel-settings/components/dnd-item/dnd-item.js +12 -19
  134. package/dist/settings/funnel-settings/components/dnd-list.js +15 -23
  135. package/dist/settings/funnel-settings/components/funnel-label-setting.js +32 -40
  136. package/dist/settings/funnel-settings/components/funnel-layer-setting.js +20 -28
  137. package/dist/settings/funnel-settings/data-settings.js +23 -31
  138. package/dist/settings/funnel-settings/index.js +3 -20
  139. package/dist/settings/funnel-settings/style-settings.js +11 -19
  140. package/dist/settings/heat-map-settings/data-settings.js +18 -26
  141. package/dist/settings/heat-map-settings/index.js +3 -20
  142. package/dist/settings/heat-map-settings/style-settings.js +18 -26
  143. package/dist/settings/horizontal-bar-settings/data-settings.js +12 -19
  144. package/dist/settings/horizontal-bar-settings/index.js +3 -20
  145. package/dist/settings/horizontal-bar-settings/style-settings.js +12 -19
  146. package/dist/settings/index.js +52 -70
  147. package/dist/settings/map-settings/components/location-field-selector.js +10 -17
  148. package/dist/settings/map-settings/components/map-level-selector.js +11 -18
  149. package/dist/settings/map-settings/components/map-province-city-selector.js +19 -26
  150. package/dist/settings/map-settings/index.js +3 -20
  151. package/dist/settings/map-settings/map-data-settings.js +23 -30
  152. package/dist/settings/map-settings/map-style-settings.js +26 -34
  153. package/dist/settings/mirror-settings/data-settings.js +26 -34
  154. package/dist/settings/mirror-settings/index.js +2 -13
  155. package/dist/settings/pie-settings/data-settings.js +33 -41
  156. package/dist/settings/pie-settings/index.js +3 -20
  157. package/dist/settings/pie-settings/style-settings.js +47 -55
  158. package/dist/settings/scatter/data-settings.js +27 -34
  159. package/dist/settings/scatter/index.js +3 -12
  160. package/dist/settings/stacks-settings/index.js +19 -27
  161. package/dist/settings/stacks-settings/stack-item-settings.js +19 -27
  162. package/dist/settings/style-settings.js +64 -72
  163. package/dist/settings/table-element-settings/components/data-filter.js +30 -38
  164. package/dist/settings/table-element-settings/data-settings.js +21 -29
  165. package/dist/settings/table-element-settings/index.js +2 -13
  166. package/dist/settings/table-settings/data-settings.js +111 -119
  167. package/dist/settings/table-settings/index.js +2 -13
  168. package/dist/settings/time-comparison-settings/data-settings.js +43 -51
  169. package/dist/settings/time-comparison-settings/index.js +3 -20
  170. package/dist/settings/time-comparison-settings/style-settings.js +62 -53
  171. package/dist/settings/trend-settings/data-settings.js +24 -32
  172. package/dist/settings/trend-settings/index.js +3 -20
  173. package/dist/settings/trend-settings/style-setting.js +17 -25
  174. package/dist/settings/widgets/axis-title-font-settings/index.js +39 -0
  175. package/dist/settings/widgets/basic-summary/index.js +55 -63
  176. package/dist/settings/widgets/chart-type/index.js +18 -26
  177. package/dist/settings/widgets/color-settings/index.js +72 -80
  178. package/dist/settings/widgets/common-data-settings.js +21 -29
  179. package/dist/settings/widgets/data-filter/index.js +35 -43
  180. package/dist/settings/widgets/data-sort.js +16 -24
  181. package/dist/settings/widgets/date-summary-item.js +24 -32
  182. package/dist/settings/widgets/display-values-settings/index.js +14 -22
  183. package/dist/settings/widgets/divider/index.js +8 -16
  184. package/dist/settings/widgets/font-settings/font-color-settings.js +11 -19
  185. package/dist/settings/widgets/font-settings/font-size-settings.js +14 -22
  186. package/dist/settings/widgets/font-settings/font-weight-settings.js +17 -25
  187. package/dist/settings/widgets/font-settings/index.js +4 -27
  188. package/dist/settings/widgets/group-by.js +51 -59
  189. package/dist/settings/widgets/min-max-setting.js +10 -18
  190. package/dist/settings/widgets/mininum-slice-percent.js +10 -18
  191. package/dist/settings/widgets/numeric-summary-item.js +23 -31
  192. package/dist/settings/widgets/select-line-type/index.js +10 -17
  193. package/dist/settings/widgets/select-table/index.js +9 -16
  194. package/dist/settings/widgets/select-view/index.js +20 -28
  195. package/dist/settings/widgets/stack.js +14 -22
  196. package/dist/settings/widgets/summary-method-setting.js +17 -25
  197. package/dist/settings/widgets/summary-settings.js +72 -80
  198. package/dist/settings/widgets/switch/index.js +8 -15
  199. package/dist/settings/widgets/text-horizontal-settings.js +15 -23
  200. package/dist/settings/widgets/time-picker.js +29 -37
  201. package/dist/settings/widgets/title-settings/index.js +29 -37
  202. package/dist/settings/widgets/title-settings/title-text.js +5 -12
  203. package/dist/settings/widgets/x-axios.js +0 -1
  204. package/dist/settings/widgets/y-axis-group-settings.js +63 -71
  205. package/dist/utils/cell-format-utils.js +18 -28
  206. package/dist/utils/cell-value-utils.js +5 -12
  207. package/dist/utils/chart-utils/base-utils.js +362 -334
  208. package/dist/utils/chart-utils/index.js +28 -41
  209. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +80 -86
  210. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +13 -20
  211. package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +45 -52
  212. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +19 -26
  213. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +32 -39
  214. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +16 -23
  215. package/dist/utils/chart-utils/original-data-utils/index.js +50 -57
  216. package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +21 -28
  217. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +91 -97
  218. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +19 -26
  219. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +31 -38
  220. package/dist/utils/chart-utils/sql-statistics-utils.js +284 -246
  221. package/dist/utils/chart.js +9 -17
  222. package/dist/utils/collaborator-manager.js +3 -9
  223. package/dist/utils/collaborator-utils.js +18 -30
  224. package/dist/utils/collaborator.js +4 -13
  225. package/dist/utils/color-utils.js +18 -29
  226. package/dist/utils/column-utils.js +65 -92
  227. package/dist/utils/common-utils.js +27 -52
  228. package/dist/utils/concurrency-manager.js +1 -7
  229. package/dist/utils/contexts.js +5 -12
  230. package/dist/utils/date-translate.js +11 -19
  231. package/dist/utils/digital-sign-utils.js +7 -14
  232. package/dist/utils/event-bus.js +1 -7
  233. package/dist/utils/hotkey.js +5 -11
  234. package/dist/utils/index.js +54 -221
  235. package/dist/utils/key-generator.js +2 -9
  236. package/dist/utils/map.js +22 -31
  237. package/dist/utils/object-utils.js +1 -7
  238. package/dist/utils/options-utils.js +8 -16
  239. package/dist/utils/row-record-utils.js +182 -178
  240. package/dist/utils/row-utils.js +27 -38
  241. package/dist/utils/search.js +24 -32
  242. package/dist/utils/sql/chart-data-sql.js +49 -55
  243. package/dist/utils/sql/column-2-sql-column.js +146 -154
  244. package/dist/utils/sql/index.js +3 -27
  245. package/dist/utils/trend-utils.js +39 -47
  246. package/dist/view/index.css +0 -17
  247. package/dist/view/index.js +89 -95
  248. package/dist/view/title/index.js +15 -23
  249. package/dist/view/wrapper/area-group.js +57 -74
  250. package/dist/view/wrapper/area.js +51 -72
  251. package/dist/view/wrapper/bar-compare.js +47 -58
  252. package/dist/view/wrapper/bar-custom-stack.js +53 -121
  253. package/dist/view/wrapper/bar-group.js +55 -96
  254. package/dist/view/wrapper/bar-stack.js +58 -92
  255. package/dist/view/wrapper/bar.js +45 -66
  256. package/dist/view/wrapper/basic-number-card.js +25 -26
  257. package/dist/view/wrapper/chart-component.js +600 -166
  258. package/dist/view/wrapper/combination.js +79 -87
  259. package/dist/view/wrapper/completeness-group.js +46 -98
  260. package/dist/view/wrapper/completeness.js +45 -97
  261. package/dist/view/wrapper/dashboard.js +33 -47
  262. package/dist/view/wrapper/funnel.js +65 -64
  263. package/dist/view/wrapper/heat-map.js +126 -104
  264. package/dist/view/wrapper/horizontal-bar-group.js +61 -78
  265. package/dist/view/wrapper/horizontal-bar-stack.js +60 -111
  266. package/dist/view/wrapper/horizontal-bar.js +45 -68
  267. package/dist/view/wrapper/index.js +110 -115
  268. package/dist/view/wrapper/line-group.js +52 -68
  269. package/dist/view/wrapper/line.js +47 -67
  270. package/dist/view/wrapper/map-bubble.js +46 -59
  271. package/dist/view/wrapper/map-world-bubble.js +45 -58
  272. package/dist/view/wrapper/map-world.js +47 -60
  273. package/dist/view/wrapper/map.js +48 -60
  274. package/dist/view/wrapper/mirror.js +45 -64
  275. package/dist/view/wrapper/pie.js +51 -59
  276. package/dist/view/wrapper/ring.js +57 -64
  277. package/dist/view/wrapper/scatter.js +53 -69
  278. package/dist/view/wrapper/table/index.js +13 -21
  279. package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +49 -57
  280. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +50 -58
  281. package/dist/view/wrapper/table/pivot-table-display-name.js +83 -91
  282. package/dist/view/wrapper/table/two-dimension-table.js +76 -84
  283. package/dist/view/wrapper/table-element/components/dataset-utils.js +23 -36
  284. package/dist/view/wrapper/table-element/components/formatter.js +96 -105
  285. package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +22 -31
  286. package/dist/view/wrapper/table-element/components/formatters/formula-formatter.js +9 -16
  287. package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +73 -80
  288. package/dist/view/wrapper/table-element/components/formula-formatter.js +9 -16
  289. package/dist/view/wrapper/table-element/components/link-formatter.js +73 -80
  290. package/dist/view/wrapper/table-element/components/record.js +10 -17
  291. package/dist/view/wrapper/table-element/components/records-body.js +17 -19
  292. package/dist/view/wrapper/table-element/components/records-header/index.js +7 -15
  293. package/dist/view/wrapper/table-element/components/records-header/records-header-cell.js +8 -16
  294. package/dist/view/wrapper/table-element/components/records.js +23 -33
  295. package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +5 -12
  296. package/dist/view/wrapper/table-element/components/utils.js +5 -15
  297. package/dist/view/wrapper/table-element/components/value-display-utils.js +4 -11
  298. package/dist/view/wrapper/table-element/components/vertical-scrollbar/index.js +6 -13
  299. package/dist/view/wrapper/table-element/index.js +18 -26
  300. package/dist/view/wrapper/treemap.js +39 -57
  301. package/dist/view/wrapper/trend.js +41 -48
  302. package/package.json +1 -1
@@ -1,32 +1,18 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _lodashEs = require("lodash-es");
12
- var d3 = _interopRequireWildcard(require("d3"));
13
- var _topojson = require("topojson");
14
- var _dtableUtils = require("dtable-utils");
15
- var _constants = require("../../constants");
16
- var _utils = require("../../utils");
17
- var _colorRules = require("../../constants/color-rules");
18
- var _context = _interopRequireDefault(require("../../context"));
19
- var _mapJson = _interopRequireDefault(require("../../services/map-json"));
20
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
21
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
22
- class Map extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { feature } from 'topojson';
5
+ import { getTableById, getTableColumnByKey } from 'dtable-utils';
6
+ import { CHART_SUMMARY_TYPE, MAP_LEVEL, DEFAULT_NUMBER_FORMAT_OBJECT, CHART_THEME_COLOR } from '../../constants';
7
+ import { BaseUtils } from '../../utils';
8
+ import { COLOR_OPTIONS } from '../../constants/color-rules';
9
+ import context from '../../context';
10
+ import fetchMapJson from '../../services/map-json';
11
+ import ToolTip from '../../components/tooltip';
12
+ import ChartComponent from './chart-component';
13
+ class Map extends ChartComponent {
23
14
  constructor(props) {
24
15
  super(props);
25
- this.handleResize = () => {
26
- this.destroyChart();
27
- this.createChart();
28
- this.drawChart();
29
- };
30
16
  this.createChart = () => {
31
17
  const {
32
18
  chart
@@ -44,13 +30,13 @@ class Map extends _chartComponent.default {
44
30
  if (!Array.isArray(data)) return;
45
31
  const {
46
32
  map_location,
47
- map_level = _constants.MAP_LEVEL.COUNTRY,
33
+ map_level = MAP_LEVEL.COUNTRY,
48
34
  type
49
35
  } = chart.config;
50
- const mediaUrl = _context.default.getSetting('mediaUrl');
51
- const mapJson = await (0, _mapJson.default)(map_level, map_location, mediaUrl);
36
+ const mediaUrl = context.getSetting('mediaUrl');
37
+ const mapJson = await fetchMapJson(map_level, map_location, mediaUrl);
52
38
  if (!mapJson) return;
53
- const newMapJson = map_level === _constants.MAP_LEVEL.COUNTRY ? (0, _topojson.feature)(mapJson, mapJson.objects) : mapJson;
39
+ const newMapJson = map_level === MAP_LEVEL.COUNTRY ? feature(mapJson, mapJson.objects) : mapJson;
54
40
  const statisticNewData = this.formatMapStatisticData(data, newMapJson, type);
55
41
  this.draw(statisticNewData, newMapJson);
56
42
  };
@@ -102,7 +88,7 @@ class Map extends _chartComponent.default {
102
88
  globalTheme,
103
89
  canvasStyle
104
90
  } = this.props;
105
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
91
+ const theme = CHART_THEME_COLOR[globalTheme];
106
92
  const {
107
93
  data_color,
108
94
  legend_size,
@@ -114,7 +100,7 @@ class Map extends _chartComponent.default {
114
100
  height: chartHeight,
115
101
  insertPadding
116
102
  } = this.chartBoundingClientRect;
117
- const currentColorOption = _colorRules.COLOR_OPTIONS.filter(item => item.name === data_color)[0] || _colorRules.COLOR_OPTIONS[0];
103
+ const currentColorOption = COLOR_OPTIONS.filter(item => item.name === data_color)[0] || COLOR_OPTIONS[0];
118
104
  const {
119
105
  exampleColors,
120
106
  highlightedBorderColor
@@ -171,7 +157,7 @@ class Map extends _chartComponent.default {
171
157
  d3.select(item).attr('fill', color());
172
158
  }
173
159
  });
174
- });
160
+ }).call(g => this.animateFadeIn(g));
175
161
  const columnData = this.getColumnData();
176
162
  this.setContinuousLegend({
177
163
  previewType: canvasStyle.previewType,
@@ -179,7 +165,7 @@ class Map extends _chartComponent.default {
179
165
  colorRange: exampleColors,
180
166
  legendDirection: legend_direction,
181
167
  legendSize: legend_size,
182
- legendTextRange: [_utils.BaseUtils.getSummaryValueDisplayString(columnData, minVal, summary_method), _utils.BaseUtils.getSummaryValueDisplayString(columnData, maxVal, summary_method)]
168
+ legendTextRange: [BaseUtils.getSummaryValueDisplayString(columnData, minVal, summary_method), BaseUtils.getSummaryValueDisplayString(columnData, maxVal, summary_method)]
183
169
  });
184
170
  };
185
171
  this.handleAcitveAndInActiveState = (state, event, highlightedBorderColor) => {
@@ -187,12 +173,12 @@ class Map extends _chartComponent.default {
187
173
  const lastElement = Array.from(event.target.parentNode.parentNode.children).at(-1);
188
174
 
189
175
  // Add element to the end
190
- d3.select(this.curElement).select('path').transition().duration(this.transitionDuration).attr('stroke-opacity', 0.7).attr('stroke-width', 0.5).attr('stroke', highlightedBorderColor);
176
+ d3.select(this.curElement).select('path').transition().duration(this.interactionDuration).attr('stroke-opacity', 0.7).attr('stroke-width', 0.5).attr('stroke', highlightedBorderColor);
191
177
  lastElement.after(this.curElement);
192
178
  return;
193
179
  }
194
180
  if (this.curElement) {
195
- d3.select(this.curElement).select('path').transition().duration(this.transitionDuration).attr('stroke-opacity', 1).attr('stroke-width', 1).attr('stroke', '#bdbdbd');
181
+ d3.select(this.curElement).select('path').transition().duration(this.interactionDuration).attr('stroke-opacity', 1).attr('stroke-width', 1).attr('stroke', '#bdbdbd');
196
182
  }
197
183
  };
198
184
  this.getColumnData = () => {
@@ -204,11 +190,14 @@ class Map extends _chartComponent.default {
204
190
  summary_column_key,
205
191
  table_id
206
192
  } = chart.config;
207
- let columnData = _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
208
- if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
209
- const table = (0, _dtableUtils.getTableById)(table_id);
210
- const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, summary_column_key) || {};
211
- columnData = summaryColumn.data || _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
193
+ let columnData = DEFAULT_NUMBER_FORMAT_OBJECT;
194
+ if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
195
+ const {
196
+ tables
197
+ } = this.props;
198
+ const table = getTableById(tables, table_id);
199
+ const summaryColumn = getTableColumnByKey(table, summary_column_key) || {};
200
+ columnData = summaryColumn.data || DEFAULT_NUMBER_FORMAT_OBJECT;
212
201
  }
213
202
  return columnData;
214
203
  };
@@ -222,12 +211,11 @@ class Map extends _chartComponent.default {
222
211
  componentDidMount() {
223
212
  this.createChart();
224
213
  this.drawChart();
225
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
226
- window.addEventListener('resize', this.debouncedHandleResize);
214
+ super.componentDidMount();
227
215
  }
228
216
  componentDidUpdate(prevProps) {
229
217
  super.componentDidUpdate(prevProps);
230
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
218
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
231
219
  this.destroyChart();
232
220
  this.createChart();
233
221
  this.drawChart();
@@ -235,17 +223,17 @@ class Map extends _chartComponent.default {
235
223
  }
236
224
  componentWillUnmount() {
237
225
  this.destroyChart();
238
- window.removeEventListener('resize', this.debouncedHandleResize);
226
+ super.componentWillUnmount();
239
227
  }
240
228
  render() {
241
229
  const {
242
230
  tooltipData,
243
231
  toolTipPosition
244
232
  } = this.state;
245
- return /*#__PURE__*/_react.default.createElement("div", {
233
+ return /*#__PURE__*/React.createElement("div", {
246
234
  ref: ref => this.container = ref,
247
235
  className: "sea-chart-container"
248
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
236
+ }, /*#__PURE__*/React.createElement(ToolTip, {
249
237
  tooltipData: tooltipData,
250
238
  toolTipPosition: toolTipPosition,
251
239
  chart: this.chart
@@ -253,16 +241,16 @@ class Map extends _chartComponent.default {
253
241
  }
254
242
  }
255
243
  Map.propTypes = {
256
- canvasStyle: _propTypes.default.object,
257
- chart: _propTypes.default.object,
258
- groupbyColumn: _propTypes.default.object,
259
- columnGroupbyColumn: _propTypes.default.object,
260
- summaryColumn: _propTypes.default.object,
261
- result: _propTypes.default.array,
262
- tables: _propTypes.default.array,
263
- globalTheme: _propTypes.default.string,
264
- chartColorTheme: _propTypes.default.string,
265
- toggleRecords: _propTypes.default.func,
266
- customRender: _propTypes.default.func
244
+ canvasStyle: PropTypes.object,
245
+ chart: PropTypes.object,
246
+ groupbyColumn: PropTypes.object,
247
+ columnGroupbyColumn: PropTypes.object,
248
+ summaryColumn: PropTypes.object,
249
+ result: PropTypes.array,
250
+ tables: PropTypes.array,
251
+ globalTheme: PropTypes.string,
252
+ chartColorTheme: PropTypes.string,
253
+ toggleRecords: PropTypes.func,
254
+ customRender: PropTypes.func
267
255
  };
268
- var _default = exports.default = Map;
256
+ export default Map;
@@ -1,30 +1,15 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _lodashEs = require("lodash-es");
12
- var d3 = _interopRequireWildcard(require("d3"));
13
- var _classnames = _interopRequireDefault(require("classnames"));
14
- var _dtableUtils = require("dtable-utils");
15
- var _constants = require("../../constants");
16
- var _utils = require("../../utils");
17
- var _intl = _interopRequireDefault(require("../../intl"));
18
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
19
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
20
- class Mirror extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { getTableById, getTableColumnByKey, getNumberDisplayString } from 'dtable-utils';
5
+ import { CHART_SUMMARY_SHOW, DEFAULT_NUMBER_FORMAT_OBJECT, CHART_SUMMARY_TYPE, TITLE_AMOUNT } from '../../constants';
6
+ import { BaseUtils } from '../../utils';
7
+ import intl from '../../intl';
8
+ import ToolTip from '../../components/tooltip';
9
+ import ChartComponent from './chart-component';
10
+ class Mirror extends ChartComponent {
21
11
  constructor(props) {
22
12
  super(props);
23
- this.handleResize = () => {
24
- this.destroyChart();
25
- this.createChart();
26
- this.drawChart();
27
- };
28
13
  this.createChart = () => {
29
14
  const {
30
15
  chart
@@ -39,7 +24,7 @@ class Mirror extends _chartComponent.default {
39
24
  let {
40
25
  result
41
26
  } = this.props;
42
- const data = _utils.BaseUtils.formatEmptyName(result.data, '', _intl.default.get('Empty'));
27
+ const data = BaseUtils.formatEmptyName(result.data, '', intl.get('Empty'));
43
28
  if (!Array.isArray(data)) return;
44
29
  this.draw({
45
30
  data,
@@ -60,7 +45,7 @@ class Mirror extends _chartComponent.default {
60
45
  offsetY
61
46
  } = event;
62
47
  const newTooltipData = {
63
- title: summary_type === 'count' ? _intl.default.get(_constants.TITLE_AMOUNT) : _intl.default.get(_constants.CHART_SUMMARY_SHOW[summary_method]),
48
+ title: summary_type === 'count' ? intl.get(TITLE_AMOUNT) : intl.get(CHART_SUMMARY_SHOW[summary_method]),
64
49
  items: [{
65
50
  color: '',
66
51
  name: data.name,
@@ -99,6 +84,8 @@ class Mirror extends _chartComponent.default {
99
84
  data,
100
85
  colorSet
101
86
  } = _ref;
87
+ const fullData = data;
88
+ data = this.getVisibleLegendData(data, 'group_name');
102
89
  const {
103
90
  chart,
104
91
  tables
@@ -116,19 +103,20 @@ class Mirror extends _chartComponent.default {
116
103
  bottomLegendSpace
117
104
  } = this.chartBoundingClientRect;
118
105
  const themeColors = this.getThemeColors();
119
- let columnData = _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
120
- if (summary_type === _constants.CHART_SUMMARY_TYPE.ADVANCED) {
121
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
122
- const summaryColumn = (0, _dtableUtils.getTableColumnByKey)(table, summary_column) || {};
123
- columnData = summaryColumn.data || _constants.DEFAULT_NUMBER_FORMAT_OBJECT;
106
+ let columnData = DEFAULT_NUMBER_FORMAT_OBJECT;
107
+ if (summary_type === CHART_SUMMARY_TYPE.ADVANCED) {
108
+ const table = getTableById(tables, table_id);
109
+ const summaryColumn = getTableColumnByKey(table, summary_column) || {};
110
+ columnData = summaryColumn.data || DEFAULT_NUMBER_FORMAT_OBJECT;
124
111
  }
125
112
  const scaleBandDomain = Array.from(new Set(data.map(d => d.group_name)));
126
113
  const scaleBand = d3.scaleBand().domain(scaleBandDomain).range(is_transpose ? [insertPadding, chartWidth - insertPadding] : [insertPadding, chartHeight - insertPadding - bottomLegendSpace]).paddingInner(0.1).paddingOuter(0);
127
114
 
128
115
  // ScaleLinear axis
129
- const maxDomain = d3.max(data, d => d.value);
116
+ const maxDomain = d3.max(data, d => d.value) || 0;
130
117
  const scaleLinear1 = d3.scaleLinear().domain([maxDomain, 0]).range([scaleBand(scaleBandDomain[0]), scaleBand.bandwidth()]);
131
- const scaleLinear2 = d3.scaleLinear().domain([0, maxDomain]).range([scaleBand(scaleBandDomain[1]), scaleBand(scaleBandDomain[1]) + scaleBand.bandwidth()]);
118
+ const secondDomainKey = scaleBandDomain[1] !== undefined ? scaleBandDomain[1] : scaleBandDomain[0];
119
+ const scaleLinear2 = d3.scaleLinear().domain([0, maxDomain]).range([scaleBand(secondDomainKey), scaleBand(secondDomainKey) + scaleBand.bandwidth()]);
132
120
  const scaleLinearWrapper = this.chart.append('g').attr('class', 'scale-linear-axis-wrapper');
133
121
  scaleLinearWrapper.append('g').attr('class', 'scale-linear-1').attr('transform', is_transpose ? `translate(0, ${chartHeight - insertPadding - bottomLegendSpace})` : `translate(${insertPadding}, 0)`).call(is_transpose ? d3.axisBottom(scaleLinear1).tickSizeInner(0).tickSizeOuter(0).ticks(5) : d3.axisLeft(scaleLinear1).tickSizeInner(0).tickSizeOuter(0).ticks(5)).call(g => {
134
122
  g.select('.domain').remove();
@@ -136,7 +124,7 @@ class Mirror extends _chartComponent.default {
136
124
  g.selectAll('.tick line').attr('stroke', themeColors.gridColor);
137
125
  is_transpose ? g.selectAll('.tick line').attr('y2', -(chartHeight - insertPadding - insertPadding - bottomLegendSpace)) : g.selectAll('.tick line').attr('x2', chartWidth - insertPadding - insertPadding);
138
126
  });
139
- scaleLinearWrapper.append('g').attr('class', 'scale-linear-2').attr('transform', is_transpose ? `translate(0, ${chartHeight - insertPadding - bottomLegendSpace})` : `translate(${insertPadding}, 0)`).call(is_transpose ? d3.axisBottom(scaleLinear2).tickSizeInner(0).tickSizeOuter(0).ticks(5).tickFormat(t => (0, _dtableUtils.getNumberDisplayString)(t, columnData)) : d3.axisLeft(scaleLinear2).tickSizeInner(0).tickSizeOuter(0).ticks(5).tickFormat(t => (0, _dtableUtils.getNumberDisplayString)(t, columnData))).call(g => {
127
+ scaleLinearWrapper.append('g').attr('class', 'scale-linear-2').attr('transform', is_transpose ? `translate(0, ${chartHeight - insertPadding - bottomLegendSpace})` : `translate(${insertPadding}, 0)`).call(is_transpose ? d3.axisBottom(scaleLinear2).tickSizeInner(0).tickSizeOuter(0).ticks(5).tickFormat(t => getNumberDisplayString(t, columnData)) : d3.axisLeft(scaleLinear2).tickSizeInner(0).tickSizeOuter(0).ticks(5).tickFormat(t => getNumberDisplayString(t, columnData))).call(g => {
140
128
  g.select('.domain').remove();
141
129
  g.selectAll('text').attr('font-size', themeColors.fontSize).attr('fill', themeColors.textColor);
142
130
  g.selectAll('.tick line').attr('stroke', themeColors.gridColor);
@@ -245,17 +233,17 @@ class Mirror extends _chartComponent.default {
245
233
  this.moveTooltip(event);
246
234
  }).on('mouseleave', event => {
247
235
  this.hiddenTooltip(event);
248
- });
236
+ }).call(g => this.animateFadeIn(g));
249
237
  this.setLegend({
250
238
  legendName: 'group_name',
251
239
  theme: themeColors,
252
240
  legendPosition: 'top-left',
253
- data,
241
+ data: fullData,
254
242
  groupColumn: this.props.columnGroupbyColumn,
255
243
  chart,
256
244
  colorScale: key => {
257
- const curD = data.find(item => item.group_name === key);
258
- return curD.color || '';
245
+ const curD = fullData.find(item => item.group_name === key);
246
+ return (curD === null || curD === void 0 ? void 0 : curD.color) || '';
259
247
  }
260
248
  });
261
249
  };
@@ -268,12 +256,11 @@ class Mirror extends _chartComponent.default {
268
256
  componentDidMount() {
269
257
  this.createChart();
270
258
  this.drawChart();
271
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
272
- window.addEventListener('resize', this.debouncedHandleResize);
259
+ super.componentDidMount();
273
260
  }
274
261
  componentDidUpdate(prevProps) {
275
262
  super.componentDidUpdate(prevProps);
276
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
263
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
277
264
  this.destroyChart();
278
265
  this.createChart();
279
266
  this.drawChart();
@@ -281,23 +268,17 @@ class Mirror extends _chartComponent.default {
281
268
  }
282
269
  componentWillUnmount() {
283
270
  this.destroyChart();
284
- window.removeEventListener('resize', this.debouncedHandleResize);
271
+ super.componentWillUnmount();
285
272
  }
286
273
  render() {
287
- const {
288
- chart
289
- } = this.props;
290
274
  const {
291
275
  tooltipData,
292
276
  toolTipPosition
293
277
  } = this.state;
294
- return /*#__PURE__*/_react.default.createElement("div", {
278
+ return /*#__PURE__*/React.createElement("div", {
295
279
  ref: ref => this.container = ref,
296
- className: (0, _classnames.default)('sea-chart-container', {
297
- 'show-x-axis-label': this.isShowXAxisLabel(chart),
298
- 'show-y-axis-label': this.isShowYAxisLabel(chart)
299
- })
300
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
280
+ className: "sea-chart-container"
281
+ }, /*#__PURE__*/React.createElement(ToolTip, {
301
282
  tooltipData: tooltipData,
302
283
  toolTipPosition: toolTipPosition,
303
284
  chart: this.chart
@@ -305,16 +286,16 @@ class Mirror extends _chartComponent.default {
305
286
  }
306
287
  }
307
288
  Mirror.propTypes = {
308
- canvasStyle: _propTypes.default.object,
309
- chart: _propTypes.default.object,
310
- groupbyColumn: _propTypes.default.object,
311
- columnGroupbyColumn: _propTypes.default.object,
312
- summaryColumn: _propTypes.default.object,
313
- result: _propTypes.default.object,
314
- tables: _propTypes.default.array,
315
- globalTheme: _propTypes.default.string,
316
- chartColorTheme: _propTypes.default.string,
317
- toggleRecords: _propTypes.default.func,
318
- customRender: _propTypes.default.func
289
+ canvasStyle: PropTypes.object,
290
+ chart: PropTypes.object,
291
+ groupbyColumn: PropTypes.object,
292
+ columnGroupbyColumn: PropTypes.object,
293
+ summaryColumn: PropTypes.object,
294
+ result: PropTypes.object,
295
+ tables: PropTypes.array,
296
+ globalTheme: PropTypes.string,
297
+ chartColorTheme: PropTypes.string,
298
+ toggleRecords: PropTypes.func,
299
+ customRender: PropTypes.func
319
300
  };
320
- var _default = exports.default = Mirror;
301
+ export default Mirror;
@@ -1,29 +1,15 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _lodashEs = require("lodash-es");
12
- var d3 = _interopRequireWildcard(require("d3"));
13
- var _constants = require("../../constants");
14
- var _utils = require("../../utils");
15
- var _intl = _interopRequireDefault(require("../../intl"));
16
- var _colorRules = require("../../constants/color-rules");
17
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
18
- var _chartComponent = _interopRequireDefault(require("./chart-component"));
19
- class Pie extends _chartComponent.default {
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import * as d3 from 'd3';
4
+ import { CHART_LABEL_POSITIONS, CHART_LABEL_FORMATS, CHART_THEME_COLOR, CHART_TYPE } from '../../constants';
5
+ import { BaseUtils, isFunction } from '../../utils';
6
+ import intl from '../../intl';
7
+ import { SUPPORT_SINGLE_SELECT_THEMES_OPTIONS } from '../../constants/color-rules';
8
+ import ToolTip from '../../components/tooltip';
9
+ import ChartComponent from './chart-component';
10
+ class Pie extends ChartComponent {
20
11
  constructor(props) {
21
12
  super(props);
22
- this.handleResize = () => {
23
- this.destroyChart();
24
- this.createChart();
25
- this.drawChart();
26
- };
27
13
  this.createChart = () => {
28
14
  const {
29
15
  chart
@@ -43,7 +29,7 @@ class Pie extends _chartComponent.default {
43
29
  customRender
44
30
  } = this.props;
45
31
  this.draw(data);
46
- (0, _utils.isFunction)(customRender) && customRender(this.chart);
32
+ isFunction(customRender) && customRender(this.chart);
47
33
  };
48
34
  this.draw = data => {
49
35
  const {
@@ -52,7 +38,7 @@ class Pie extends _chartComponent.default {
52
38
  globalTheme,
53
39
  chartColorTheme
54
40
  } = this.props;
55
- const theme = _constants.CHART_THEME_COLOR[globalTheme];
41
+ const theme = CHART_THEME_COLOR[globalTheme];
56
42
  const {
57
43
  show_legend,
58
44
  display_label,
@@ -66,23 +52,26 @@ class Pie extends _chartComponent.default {
66
52
  insertPadding,
67
53
  rightLegendSpace
68
54
  } = this.chartBoundingClientRect;
69
- this.isInnerLabel = !label_position || label_position === _constants.CHART_LABEL_POSITIONS[0];
70
- const currentTheme = _utils.BaseUtils.getCurrentTheme(chartColorTheme);
71
- const useSingleSelectColumnColor = color_theme === _colorRules.SUPPORT_SINGLE_SELECT_THEMES_OPTIONS.SINGLE_SELECT_COLUMN_COLORS;
55
+ this.isInnerLabel = !label_position || label_position === CHART_LABEL_POSITIONS[0];
56
+ const currentTheme = BaseUtils.getCurrentTheme(chartColorTheme);
57
+ const useSingleSelectColumnColor = color_theme === SUPPORT_SINGLE_SELECT_THEMES_OPTIONS.SINGLE_SELECT_COLUMN_COLORS;
72
58
  const {
73
59
  data: newData,
74
60
  colorMap
75
- } = _utils.BaseUtils.formatPieChartData(data, chart, tables, currentTheme, useSingleSelectColumnColor);
61
+ } = BaseUtils.formatPieChartData(data, chart, tables, currentTheme, useSingleSelectColumnColor);
76
62
  if (!Array.isArray(newData) || newData.length === 0) return;
77
63
 
64
+ // Only the visible categories are laid out; the legend still shows every category.
65
+ const visibleData = this.getVisibleLegendData(newData, 'name');
66
+
78
67
  // Color
79
- const colorDomain = new Set(data.map(d => d.name));
68
+ const colorDomain = new Set(newData.map(d => d.name));
80
69
  const colorRange = Array.from(colorDomain).map(name => colorMap[name === null || name === void 0 ? void 0 : name.trim()]);
81
70
  const color = d3.scaleOrdinal().domain(colorDomain).range(colorRange);
82
71
 
83
72
  // Pie and Arc
84
73
  const pie = d3.pie().sort(null).value(d => d.value);
85
- const arcs = pie(data);
74
+ const arcs = pie(visibleData);
86
75
  const arc = d3.arc().innerRadius(0).outerRadius(Math.min(chartWidth, chartHeight) / 2 * 0.7);
87
76
 
88
77
  // Draw Pie
@@ -108,13 +97,13 @@ class Pie extends _chartComponent.default {
108
97
  percent
109
98
  } = d.data;
110
99
  return this.getLabel(value, percent);
111
- }).attr('fill', theme.labelColor).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size));
100
+ }).attr('fill', theme.labelColor).attr('font-size', BaseUtils.getLabelFontSize(label_font_size));
112
101
 
113
102
  // Line
114
103
  if (!this.isInnerLabel) {
115
104
  const lineRadius = arc.outerRadius()() * 0.5;
116
105
  const arcLine = d3.arc().innerRadius(lineRadius).outerRadius(lineRadius);
117
- this.chart.append('g').attr('transform', `translate(${left + offsetX}, ${top + offsetY})`).selectAll().data(arcs).join('line').attr('transform', d => `translate(${arcLine.centroid(d)})`).attr('x1', d => arcLine.centroid(d)[0]).attr('y1', d => arcLine.centroid(d)[1]).attr('x2', d => arcLine.centroid(d)[0] * 1.2).attr('y2', d => arcLine.centroid(d)[1] * 1.2).attr('stroke', d => color(d.data.name)).attr('font-size', _utils.BaseUtils.getLabelFontSize(label_font_size));
106
+ this.chart.append('g').attr('transform', `translate(${left + offsetX}, ${top + offsetY})`).selectAll().data(arcs).join('line').attr('transform', d => `translate(${arcLine.centroid(d)})`).attr('x1', d => arcLine.centroid(d)[0]).attr('y1', d => arcLine.centroid(d)[1]).attr('x2', d => arcLine.centroid(d)[0] * 1.2).attr('y2', d => arcLine.centroid(d)[1] * 1.2).attr('stroke', d => color(d.data.name)).attr('font-size', BaseUtils.getLabelFontSize(label_font_size));
118
107
  }
119
108
  }
120
109
  }).on('click', (event, rowData) => {
@@ -127,13 +116,17 @@ class Pie extends _chartComponent.default {
127
116
  }).on('mouseleave', (event, data) => {
128
117
  this.hiddenTooltip();
129
118
  this.handleAcitveAndInActiveState('active', event);
119
+ }).call(g => {
120
+ this.animateArcGrowIn(g, arc);
121
+ this.animateFadeIn(this.chart.selectAll('text'), this.transitionDuration, this.transitionDuration * 0.5);
122
+ this.animateFadeIn(this.chart.selectAll('line'), this.transitionDuration, this.transitionDuration * 0.5);
130
123
  });
131
124
  if (show_legend) {
132
125
  this.setLegend({
133
126
  legendName: 'name',
134
127
  theme,
135
128
  legendPosition: 'center-right',
136
- data,
129
+ data: newData,
137
130
  colorScale: color
138
131
  });
139
132
  }
@@ -185,7 +178,7 @@ class Pie extends _chartComponent.default {
185
178
  this.handleAcitveAndInActiveState = (state, event) => {
186
179
  const allGroup = [event.currentTarget.parentNode];
187
180
  const curGroupName = event.currentTarget.getAttribute('data-groupName');
188
- this.setActiveAndInActiveState(state, allGroup, curGroupName, _constants.CHART_TYPE.PIE);
181
+ this.setActiveAndInActiveState(state, allGroup, curGroupName, CHART_TYPE.PIE);
189
182
  };
190
183
  this.getLabel = (val, percent) => {
191
184
  const {
@@ -197,16 +190,16 @@ class Pie extends _chartComponent.default {
197
190
  display_label,
198
191
  label_format
199
192
  } = chart.config;
200
- const value = _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, val, summary_method);
193
+ const value = BaseUtils.getSummaryValueDisplayString(summaryColumn, val, summary_method);
201
194
  if (!display_label || !value || !percent) {
202
195
  return '';
203
196
  }
204
197
  switch (label_format) {
205
- case _constants.CHART_LABEL_FORMATS[0]:
198
+ case CHART_LABEL_FORMATS[0]:
206
199
  return percent;
207
- case _constants.CHART_LABEL_FORMATS[1]:
200
+ case CHART_LABEL_FORMATS[1]:
208
201
  return value;
209
- case _constants.CHART_LABEL_FORMATS[2]:
202
+ case CHART_LABEL_FORMATS[2]:
210
203
  return `${value} (${percent})`;
211
204
  default:
212
205
  return percent;
@@ -215,9 +208,9 @@ class Pie extends _chartComponent.default {
215
208
  this.getTooltipName = name => {
216
209
  let title = name;
217
210
  if (!name || name.trim() === 'undefined' || name.trim() === 'null') {
218
- title = _intl.default.get('Empty');
211
+ title = intl.get('Empty');
219
212
  } else if (name === '_Others') {
220
- title = _intl.default.get('Others');
213
+ title = intl.get('Others');
221
214
  }
222
215
  return title;
223
216
  };
@@ -230,12 +223,11 @@ class Pie extends _chartComponent.default {
230
223
  componentDidMount() {
231
224
  this.createChart();
232
225
  this.drawChart();
233
- this.debouncedHandleResize = (0, _lodashEs.debounce)(this.handleResize, 300);
234
- window.addEventListener('resize', this.debouncedHandleResize);
226
+ super.componentDidMount();
235
227
  }
236
228
  componentDidUpdate(prevProps) {
237
229
  super.componentDidUpdate(prevProps);
238
- if (_utils.BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
230
+ if (BaseUtils.shouldChartComponentUpdate(prevProps, this.props)) {
239
231
  this.destroyChart();
240
232
  this.createChart();
241
233
  this.drawChart();
@@ -243,17 +235,17 @@ class Pie extends _chartComponent.default {
243
235
  }
244
236
  componentWillUnmount() {
245
237
  this.destroyChart();
246
- window.removeEventListener('resize', this.debouncedHandleResize);
238
+ super.componentWillUnmount();
247
239
  }
248
240
  render() {
249
241
  const {
250
242
  tooltipData,
251
243
  toolTipPosition
252
244
  } = this.state;
253
- return /*#__PURE__*/_react.default.createElement("div", {
245
+ return /*#__PURE__*/React.createElement("div", {
254
246
  ref: ref => this.container = ref,
255
247
  className: "sea-chart-container"
256
- }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
248
+ }, /*#__PURE__*/React.createElement(ToolTip, {
257
249
  tooltipData: tooltipData,
258
250
  toolTipPosition: toolTipPosition,
259
251
  chart: this.chart
@@ -261,15 +253,15 @@ class Pie extends _chartComponent.default {
261
253
  }
262
254
  }
263
255
  Pie.propTypes = {
264
- canvasStyle: _propTypes.default.object,
265
- chart: _propTypes.default.object,
266
- groupbyColumn: _propTypes.default.object,
267
- summaryColumn: _propTypes.default.object,
268
- result: _propTypes.default.array,
269
- tables: _propTypes.default.array,
270
- globalTheme: _propTypes.default.string,
271
- chartColorTheme: _propTypes.default.string,
272
- toggleRecords: _propTypes.default.func,
273
- customRender: _propTypes.default.func
256
+ canvasStyle: PropTypes.object,
257
+ chart: PropTypes.object,
258
+ groupbyColumn: PropTypes.object,
259
+ summaryColumn: PropTypes.object,
260
+ result: PropTypes.array,
261
+ tables: PropTypes.array,
262
+ globalTheme: PropTypes.string,
263
+ chartColorTheme: PropTypes.string,
264
+ toggleRecords: PropTypes.func,
265
+ customRender: PropTypes.func
274
266
  };
275
- var _default = exports.default = Pie;
267
+ export default Pie;