sea-chart 0.0.48 → 0.0.50

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 (85) hide show
  1. package/dist/components/color-popover/color-rules/rule-filters/filter.js +4 -4
  2. package/dist/components/color-setting/color-group-selector.js +3 -2
  3. package/dist/components/types-dialog/index.js +2 -2
  4. package/dist/constants/common-constants.js +3 -0
  5. package/dist/constants/index.js +3 -0
  6. package/dist/context.js +9 -6
  7. package/dist/index.js +4 -1
  8. package/dist/locale/lang/en.js +1 -0
  9. package/dist/locale/lang/zh_CN.js +1 -0
  10. package/dist/model/chart.js +4 -0
  11. package/dist/settings/advance-bar-settings/style-settings.js +7 -5
  12. package/dist/settings/bar-settings/style-settings.js +5 -3
  13. package/dist/settings/basic-number-card/data-settings.js +7 -4
  14. package/dist/settings/combination-settings/style-settings.js +7 -4
  15. package/dist/settings/completeness-settings/data-settings/completion-settings.js +5 -3
  16. package/dist/settings/dashboard-settings/data-settings.js +7 -4
  17. package/dist/settings/horizontal-bar-settings/data-settings.js +2 -0
  18. package/dist/settings/index.js +3 -2
  19. package/dist/settings/map-settings/components/location-field-selector.js +3 -2
  20. package/dist/settings/map-settings/components/map-level-selector.js +3 -2
  21. package/dist/settings/map-settings/components/map-province-city-selector.js +5 -3
  22. package/dist/settings/map-settings/map-style-settings.js +3 -2
  23. package/dist/settings/pie-settings/style-settings.js +5 -3
  24. package/dist/settings/table-settings/data-settings.js +6 -5
  25. package/dist/settings/time-comparison-settings/style-settings.js +5 -3
  26. package/dist/settings/trend-settings/data-settings.js +2 -2
  27. package/dist/settings/widgets/basic-summary/index.js +7 -4
  28. package/dist/settings/widgets/color-settings/index.js +2 -2
  29. package/dist/settings/widgets/common-data-settings.js +1 -1
  30. package/dist/settings/widgets/data-filter/index.js +2 -2
  31. package/dist/settings/widgets/data-sort.js +2 -2
  32. package/dist/settings/widgets/date-summary-item.js +5 -3
  33. package/dist/settings/widgets/display-values-settings/index.js +2 -2
  34. package/dist/settings/widgets/font-settings/font-weight-settings.js +2 -2
  35. package/dist/settings/widgets/group-by.js +7 -4
  36. package/dist/settings/widgets/numeric-summary-item.js +5 -3
  37. package/dist/settings/widgets/select-line-type/index.js +2 -2
  38. package/dist/settings/widgets/select-table/index.js +3 -3
  39. package/dist/settings/widgets/select-view/index.js +3 -3
  40. package/dist/settings/widgets/summary-method-setting.js +5 -3
  41. package/dist/settings/widgets/summary-settings.js +8 -5
  42. package/dist/settings/widgets/switch/index.js +2 -2
  43. package/dist/settings/widgets/y-axis-group-settings.js +3 -2
  44. package/dist/utils/chart-utils/base-utils.js +34 -9
  45. package/dist/utils/chart-utils/index.js +1 -1
  46. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +69 -16
  47. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +2 -2
  48. package/dist/utils/chart-utils/original-data-utils/combination-calculator.js +9 -9
  49. package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +2 -2
  50. package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +10 -10
  51. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +4 -4
  52. package/dist/utils/chart-utils/original-data-utils/index.js +3 -3
  53. package/dist/utils/chart-utils/original-data-utils/mirror-calculator.js +6 -6
  54. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +3 -3
  55. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +9 -9
  56. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +5 -5
  57. package/dist/utils/chart-utils/sql-statistics-utils.js +17 -6
  58. package/dist/utils/event-bus.js +28 -0
  59. package/dist/utils/row-utils.js +1 -1
  60. package/dist/utils/sql/chart-data-sql.js +17 -4
  61. package/dist/utils/sql/column-2-sql-column.js +7 -1
  62. package/dist/view/index.css +1 -1
  63. package/dist/view/index.js +49 -7
  64. package/dist/view/wrapper/area.js +16 -9
  65. package/dist/view/wrapper/bar-custom.js +8 -9
  66. package/dist/view/wrapper/bar-group.js +7 -4
  67. package/dist/view/wrapper/bar.js +8 -6
  68. package/dist/view/wrapper/basic-number-card.js +3 -2
  69. package/dist/view/wrapper/chart-component.js +6 -2
  70. package/dist/view/wrapper/combination.js +7 -7
  71. package/dist/view/wrapper/compare.js +18 -17
  72. package/dist/view/wrapper/completeness.js +8 -5
  73. package/dist/view/wrapper/dashboard.js +3 -1
  74. package/dist/view/wrapper/horizontal-bar-group.js +7 -4
  75. package/dist/view/wrapper/horizontal-bar.js +8 -6
  76. package/dist/view/wrapper/index.js +6 -3
  77. package/dist/view/wrapper/line-group.js +13 -5
  78. package/dist/view/wrapper/line.js +8 -6
  79. package/dist/view/wrapper/map.js +2 -2
  80. package/dist/view/wrapper/pie.js +12 -6
  81. package/dist/view/wrapper/ring.js +14 -7
  82. package/dist/view/wrapper/scatter.js +7 -4
  83. package/dist/view/wrapper/treemap.js +5 -2
  84. package/dist/view/wrapper/trend.js +124 -54
  85. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
+ import _DTableCustomizeSelect from "dtable-ui-component/lib/DTableCustomizeSelect";
1
2
  import React from 'react';
2
3
  import intl from '../../../../intl';
3
- import DTableCustomizeSelect from "dtable-ui-component/lib/DTableCustomizeSelect";
4
4
  import NumberInput from './number-input';
5
5
  import { COLOR_RULE_FILTER_TYPE_MAP, EMPTY_PREDICATE } from '../../../../constants/color-rules';
6
6
  const INPUT_CMP_TYPE_MAP = {
@@ -117,7 +117,7 @@ class Filter extends React.Component {
117
117
  case 1:
118
118
  {
119
119
  const selectedConjunction = conjunctionOptions.find(option => option.value === filterConjunction);
120
- return /*#__PURE__*/React.createElement(DTableCustomizeSelect, {
120
+ return /*#__PURE__*/React.createElement(_DTableCustomizeSelect, {
121
121
  value: selectedConjunction,
122
122
  options: conjunctionOptions,
123
123
  onSelectOption: this.onSelectConjunction
@@ -196,13 +196,13 @@ class Filter extends React.Component {
196
196
  className: "filter-container"
197
197
  }, /*#__PURE__*/React.createElement("div", {
198
198
  className: "filter-column"
199
- }, /*#__PURE__*/React.createElement(DTableCustomizeSelect, {
199
+ }, /*#__PURE__*/React.createElement(_DTableCustomizeSelect, {
200
200
  value: selectedFilterType,
201
201
  options: filterTypeOptions,
202
202
  onSelectOption: this.onSelectFilterBy
203
203
  })), /*#__PURE__*/React.createElement("div", {
204
204
  className: "filter-predicate ml-2"
205
- }, /*#__PURE__*/React.createElement(DTableCustomizeSelect, {
205
+ }, /*#__PURE__*/React.createElement(_DTableCustomizeSelect, {
206
206
  value: selectedPredicate,
207
207
  options: this.predicateOptions,
208
208
  onSelectOption: this.onSelectPredicate
@@ -1,4 +1,4 @@
1
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
2
2
  import React, { Component } from 'react';
3
3
  import { FormGroup } from 'reactstrap';
4
4
  import { COLOR_OPTIONS } from '../../constants/color-rules';
@@ -37,7 +37,8 @@ class ColorGroupSelector extends Component {
37
37
  const currentOption = this.colorOptions.filter(item => item.value === currentColor)[0] || this.colorOptions[0];
38
38
  return /*#__PURE__*/React.createElement(FormGroup, {
39
39
  className: "statistic-chart-parameter-item"
40
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Color')), /*#__PURE__*/React.createElement(DTableSelect, {
40
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Color')), /*#__PURE__*/React.createElement(_DTableSelect, {
41
+ menuPortalTarget: "#sea-chart-settings-content",
41
42
  classNamePrefix: 'chart-color',
42
43
  value: currentOption,
43
44
  onChange: this.changeColor,
@@ -45,7 +45,7 @@ const TypesDialog = _ref => {
45
45
  const onSubmit = useCallback(() => {
46
46
  onChange(selectedType);
47
47
  onToggle();
48
- }, [selectedType, onToggle, onChange]);
48
+ }, [onChange, selectedType, onToggle]);
49
49
  return /*#__PURE__*/React.createElement(Modal, {
50
50
  isOpen: true,
51
51
  toggle: onToggle,
@@ -53,7 +53,7 @@ const TypesDialog = _ref => {
53
53
  zIndex: 1048
54
54
  }, /*#__PURE__*/React.createElement(ModalHeader, {
55
55
  toggle: onToggle
56
- }, intl.get('Edit_type')), /*#__PURE__*/React.createElement(ModalBody, {
56
+ }, type ? intl.get('Edit_type') : intl.get('All_charts')), /*#__PURE__*/React.createElement(ModalBody, {
57
57
  className: "sea-chart-types-body"
58
58
  }, /*#__PURE__*/React.createElement("div", {
59
59
  className: "sea-chart-types-container d-flex flex-column h-100"
@@ -3,4 +3,7 @@ export const CommonEventTypes = {
3
3
  EXPAND_ROW_UPDATED: 'EXPAND_ROW_UPDATED',
4
4
  EXPAND_ROW_DELETED: 'EXPAND_ROW_DELETED',
5
5
  REFRESH_CHARTS: 'REFRESH_CHARTS'
6
+ };
7
+ export const EXTERNAL_EVENT = {
8
+ //
6
9
  };
@@ -237,6 +237,9 @@ export const TYPE_DISPLAY_COLOR_USING = {
237
237
  // default grid size, grid distance for heat map chart
238
238
  export const DEFAULT_GRID_SIZE = 12;
239
239
  export const DEFAULT_GRID_DISTANCE = 4;
240
+
241
+ // default mediaUrl
242
+ export const DEFAULT_MEDIAURL = 'https://dev.seatable.cn/media/';
240
243
  export const MONTH_MIRROR = {
241
244
  '0': 'Jan',
242
245
  '1': 'Feb',
package/dist/context.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { getTableById } from 'dtable-utils';
2
2
  import CollaboratorManager from './utils/collaborator-manager';
3
3
  import { ChartDataSQL } from './utils';
4
- import { CHART_TYPE, CHART_TYPE_IMAGE } from './constants';
4
+ import { CHART_TYPE, CHART_TYPE_IMAGE, DEFAULT_MEDIAURL } from './constants';
5
5
  class Context {
6
6
  constructor() {
7
7
  this.queryChartResult = async _ref => {
@@ -102,12 +102,15 @@ class Context {
102
102
  return this.api.getTableFormulaResults(table, rows, value);
103
103
  };
104
104
  this.getChartImageUrl = type => {
105
- const {
106
- server,
107
- mediaUrl
108
- } = this.settings;
109
105
  const name = CHART_TYPE_IMAGE[type];
110
- return "".concat(server).concat(mediaUrl, "dtable-statistic/img/").concat(name);
106
+ if (Reflect.ownKeys(this.settings).length !== 0) {
107
+ const {
108
+ server,
109
+ mediaUrl
110
+ } = this.settings;
111
+ return "".concat(server).concat(mediaUrl, "dtable-statistic/img/").concat(name);
112
+ }
113
+ return "".concat(DEFAULT_MEDIAURL, "dtable-statistic/img/").concat(name);
111
114
  };
112
115
  this.api = null;
113
116
  this.settings = {};
package/dist/index.js CHANGED
@@ -4,7 +4,10 @@ import { ChartModel } from './model';
4
4
  import View from './view';
5
5
  import Editor from './editor';
6
6
  import Settings, { StyleSettings, Divider } from './settings';
7
+ import TypesDialog from './components/types-dialog';
7
8
  import { ChartDataSQL } from './utils';
8
9
  import Context from './context';
10
+ import EventBus from './utils/event-bus';
11
+ import { EXTERNAL_EVENT } from './constants/common-constants';
9
12
  export default View;
10
- export { SeaChartAPI, CHART_TYPE, CHART_TYPES, View, Editor, Settings, StyleSettings, Divider, Context, ChartModel, ChartDataSQL };
13
+ export { SeaChartAPI, CHART_TYPE, CHART_TYPES, View, Editor, Settings, StyleSettings, Divider, Context, ChartModel, ChartDataSQL, EventBus, EXTERNAL_EVENT, TypesDialog };
@@ -129,6 +129,7 @@ const en = {
129
129
  "Title": "Title",
130
130
  "Custom_title": "Custom title",
131
131
  "Edit_type": "Edit type",
132
+ "All_charts": "All charts",
132
133
  "Cancel": "Cancel",
133
134
  "Submit": "Submit",
134
135
  "There_are_no_statistic_results_yet": "There are no statistic results yet",
@@ -129,6 +129,7 @@ const zh_CN = {
129
129
  "Title": "标题",
130
130
  "Custom_title": "自定义标题",
131
131
  "Edit_type": "编辑类型",
132
+ "All_charts": "所有图表",
132
133
  "Cancel": "取消",
133
134
  "Submit": "提交",
134
135
  "There_are_no_statistic_results_yet": "目前还没有统计结果",
@@ -2,13 +2,17 @@ import { generateChartConfig } from '../utils';
2
2
  import { HORIZONTAL_ALIGN, DEFAULT_CHART_FONT_WEIGHT, DEFAULT_CHART_TITLE_FONT_SIZE } from '../constants';
3
3
  class ChartModel {
4
4
  constructor(options, tables) {
5
+ // id is ChartModel id
6
+ // _id is chart config id
5
7
  const {
6
8
  id,
9
+ _id,
7
10
  style_config
8
11
  } = options;
9
12
  this.id = id;
10
13
  this.type = 'statistic';
11
14
  this.config = generateChartConfig(options, tables);
15
+ this.config._id = _id;
12
16
  this.style_config = style_config || {};
13
17
  this.style_config.title = {
14
18
  text: '',
@@ -1,7 +1,7 @@
1
+ import _DTableSwitch from "dtable-ui-component/lib/DTableSwitch";
2
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
3
  import React, { useCallback, useMemo, useState } from 'react';
2
4
  import { Label, FormGroup, Input } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
- import DTableSwitch from "dtable-ui-component/lib/DTableSwitch";
5
5
  import Switch from '../widgets/switch';
6
6
  import Divider from '../widgets/divider';
7
7
  import MinMaxSetting from '../widgets/min-max-setting';
@@ -163,7 +163,8 @@ const StyleSettings = _ref => {
163
163
  checked: x_axis_show_label || false,
164
164
  placeholder: intl.get('Display_title'),
165
165
  onChange: event => onAxisLabelShowChange(event, 'x_axis_show_label')
166
- }), x_axis_show_label && /*#__PURE__*/React.createElement(DTableSelect, {
166
+ }), x_axis_show_label && /*#__PURE__*/React.createElement(_DTableSelect, {
167
+ menuPortalTarget: "#sea-chart-settings-content",
167
168
  value: xAxisLabelPosition,
168
169
  options: xAxisLabelOptions,
169
170
  onChange: option => onAxisLabelPositionChange(option, 'x_axis_label_position')
@@ -188,7 +189,8 @@ const StyleSettings = _ref => {
188
189
  onKeyDown: onKeyDown
189
190
  })), y_axis_show_label && /*#__PURE__*/React.createElement("div", {
190
191
  className: "sea-chart-parameter-container"
191
- }, /*#__PURE__*/React.createElement(DTableSelect, {
192
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
193
+ menuPortalTarget: "#sea-chart-settings-content",
192
194
  value: yAxisLabelPosition,
193
195
  classNamePrefix: "chart-y-axis-label-position",
194
196
  options: yAxisLabelOptions,
@@ -209,7 +211,7 @@ const StyleSettings = _ref => {
209
211
  fontSizeKey: "label_font_size",
210
212
  fontSize: label_font_size,
211
213
  onChange: onDisplayValueChange
212
- }), SUPPORT_STACK_VALUE_CHART_TYPES.includes(type) && /*#__PURE__*/React.createElement(DTableSwitch, {
214
+ }), SUPPORT_STACK_VALUE_CHART_TYPES.includes(type) && /*#__PURE__*/React.createElement(_DTableSwitch, {
213
215
  switchClassName: "display-value-settings",
214
216
  checked: display_each_block_data,
215
217
  disabled: false,
@@ -1,6 +1,6 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useMemo, useCallback } from 'react';
2
3
  import { Label, FormGroup } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
4
  import Switch from '../widgets/switch';
5
5
  import Divider from '../widgets/divider';
6
6
  import MinMaxSetting from '../widgets/min-max-setting';
@@ -146,7 +146,8 @@ const StyleSettings = _ref => {
146
146
  checked: x_axis_show_label || false,
147
147
  placeholder: intl.get('Display_title'),
148
148
  onChange: event => onAxisLabelShowChange(event, 'x_axis_show_label')
149
- }), x_axis_show_label && /*#__PURE__*/React.createElement(DTableSelect, {
149
+ }), x_axis_show_label && /*#__PURE__*/React.createElement(_DTableSelect, {
150
+ menuPortalTarget: "#sea-chart-settings-content",
150
151
  value: xAxisLabelPosition,
151
152
  options: xAxisLabelOptions,
152
153
  onChange: option => onAxisLabelPositionChange(option, 'x_axis_label_position')
@@ -159,7 +160,8 @@ const StyleSettings = _ref => {
159
160
  onChange: event => onAxisLabelShowChange(event, 'y_axis_show_label')
160
161
  }), y_axis_show_label && /*#__PURE__*/React.createElement("div", {
161
162
  className: "sea-chart-parameter-container"
162
- }, /*#__PURE__*/React.createElement(DTableSelect, {
163
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
164
+ menuPortalTarget: "#sea-chart-settings-content",
163
165
  value: yAxisLabelPosition,
164
166
  classNamePrefix: "chart-y-axis-label-position",
165
167
  options: yAxisLabelOptions,
@@ -1,7 +1,7 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useCallback, useMemo } from 'react';
2
3
  import { FormGroup } from 'reactstrap';
3
4
  import { COLUMNS_ICON_CONFIG, getTableById } from 'dtable-utils';
4
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
5
5
  import CommonDataSettings from '../widgets/common-data-settings';
6
6
  import { BaseUtils } from '../../utils';
7
7
  import { CHART_SUMMARY_SHOW, CHART_SUMMARY_CALCULATION_METHOD, CHART_SUPPORT_COLUMNS, CHART_Y_GROUP_TYPE, BASIC_NUMBER_CARD_CALCULATION_METHOD } from '../../constants';
@@ -150,7 +150,8 @@ const DataSettings = _ref => {
150
150
  onChange: onChange
151
151
  }), /*#__PURE__*/React.createElement(FormGroup, {
152
152
  className: "sea-chart-parameter-item"
153
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(DTableSelect, {
153
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(_DTableSelect, {
154
+ menuPortalTarget: "#sea-chart-settings-content",
154
155
  classNamePrefix: "chart-summary-types",
155
156
  value: selectedSummaryTypeOption,
156
157
  options: summaryTypeOptions,
@@ -158,7 +159,8 @@ const DataSettings = _ref => {
158
159
  onChange: onSummaryTypeChange
159
160
  })), isSummarizeAField && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, {
160
161
  className: "sea-chart-parameter-item"
161
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_field')), /*#__PURE__*/React.createElement(DTableSelect, {
162
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
163
+ menuPortalTarget: "#sea-chart-settings-content",
162
164
  value: selectedColumnOption,
163
165
  options: numericColumnOptions,
164
166
  onChange: onSelectColumnChange
@@ -166,7 +168,8 @@ const DataSettings = _ref => {
166
168
  className: "sea-chart-parameter-item"
167
169
  }, /*#__PURE__*/React.createElement("div", {
168
170
  className: "dtable-plugin-stat-parameter-item"
169
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(DTableSelect, {
171
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(_DTableSelect, {
172
+ menuPortalTarget: "#sea-chart-settings-content",
170
173
  value: selectedMethodOption,
171
174
  onChange: onSelectSummaryMethod,
172
175
  options: summaryMethodsOptions
@@ -1,6 +1,6 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useCallback, useMemo } from 'react';
2
3
  import { Label, FormGroup } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
4
  import Switch from '../widgets/switch';
5
5
  import Divider from '../widgets/divider';
6
6
  import MinMaxSetting from '../widgets/min-max-setting';
@@ -113,7 +113,8 @@ const StyleSettings = _ref => {
113
113
  checked: x_axis_show_label || false,
114
114
  placeholder: intl.get('Display_title'),
115
115
  onChange: event => onAxisLabelShowChange(event, 'x_axis_show_label')
116
- }), x_axis_show_label && /*#__PURE__*/React.createElement(DTableSelect, {
116
+ }), x_axis_show_label && /*#__PURE__*/React.createElement(_DTableSelect, {
117
+ menuPortalTarget: "#sea-chart-settings-content",
117
118
  value: xAxisLabelPosition,
118
119
  options: xAxisLabelOptions,
119
120
  onChange: option => onAxisLabelPositionChange(option, 'x_axis_label_position')
@@ -126,7 +127,8 @@ const StyleSettings = _ref => {
126
127
  onChange: event => onAxisLabelShowChange(event, 'show_y_axis_left_label')
127
128
  }), show_y_axis_left_label && /*#__PURE__*/React.createElement("div", {
128
129
  className: "sea-chart-parameter-container"
129
- }, /*#__PURE__*/React.createElement(DTableSelect, {
130
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
131
+ menuPortalTarget: "#sea-chart-settings-content",
130
132
  value: yLeftAxisLabelPosition,
131
133
  classNamePrefix: "chart-y-axis-label-position",
132
134
  options: yAxisLabelOptions,
@@ -150,7 +152,8 @@ const StyleSettings = _ref => {
150
152
  onChange: event => onAxisLabelShowChange(event, 'show_y_axis_right_label')
151
153
  }), show_y_axis_right_label && /*#__PURE__*/React.createElement("div", {
152
154
  className: "sea-chart-parameter-container"
153
- }, /*#__PURE__*/React.createElement(DTableSelect, {
155
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
156
+ menuPortalTarget: "#sea-chart-settings-content",
154
157
  value: yRightAxisLabelPosition,
155
158
  classNamePrefix: "chart-y-axis-label-position",
156
159
  options: yAxisLabelOptions,
@@ -1,5 +1,5 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React from 'react';
2
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
3
3
  import { FormGroup, Label } from 'reactstrap';
4
4
  import { getTableById } from 'dtable-utils';
5
5
  import intl from '../../../intl';
@@ -34,7 +34,8 @@ export default function CompletionSettings(_ref) {
34
34
  }
35
35
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, {
36
36
  className: "sea-chart-parameter-item"
37
- }, /*#__PURE__*/React.createElement(Label, null, intl.get('Completed_field')), /*#__PURE__*/React.createElement(DTableSelect, {
37
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Completed_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
38
+ menuPortalTarget: "#sea-chart-settings-content",
38
39
  classNamePrefix: "chart-summary-types",
39
40
  placeholder: intl.get('Select_field'),
40
41
  noOptionsMessage: () => {
@@ -45,7 +46,8 @@ export default function CompletionSettings(_ref) {
45
46
  options: options
46
47
  })), /*#__PURE__*/React.createElement(FormGroup, {
47
48
  className: "sea-chart-parameter-item"
48
- }, /*#__PURE__*/React.createElement(Label, null, intl.get('Target_field')), /*#__PURE__*/React.createElement(DTableSelect, {
49
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Target_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
50
+ menuPortalTarget: "#sea-chart-settings-content",
49
51
  classNamePrefix: "chart-summary-types",
50
52
  placeholder: intl.get('Select_field'),
51
53
  noOptionsMessage: () => {
@@ -1,7 +1,7 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { Fragment, useCallback, useMemo } from 'react';
2
3
  import { FormGroup } from 'reactstrap';
3
4
  import { COLUMNS_ICON_CONFIG, getTableById } from 'dtable-utils';
4
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
5
5
  import CommonDataSettings from '../widgets/common-data-settings';
6
6
  import { BaseUtils } from '../../utils';
7
7
  import { CHART_SUMMARY_SHOW, CHART_SUMMARY_CALCULATION_METHOD, CHART_SUPPORT_COLUMNS, BASIC_NUMBER_CARD_CALCULATION_METHOD } from '../../constants';
@@ -137,7 +137,8 @@ const DataSettings = _ref => {
137
137
  const selectedMethodOption = getSelectedMethodOption(summary_method, summaryMethodsOptions);
138
138
  return /*#__PURE__*/React.createElement("div", {
139
139
  className: "dtable-plugin-stat-parameter-item"
140
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(DTableSelect, {
140
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(_DTableSelect, {
141
+ menuPortalTarget: "#sea-chart-settings-content",
141
142
  value: selectedMethodOption,
142
143
  onChange: onSelectSummaryMethod,
143
144
  options: summaryMethodsOptions
@@ -156,7 +157,8 @@ const DataSettings = _ref => {
156
157
  onChange: onChange
157
158
  }), /*#__PURE__*/React.createElement(FormGroup, {
158
159
  className: "sea-chart-parameter-item"
159
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Current_value_field')), /*#__PURE__*/React.createElement(DTableSelect, {
160
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Current_value_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
161
+ menuPortalTarget: "#sea-chart-settings-content",
160
162
  value: selectedTargetValueColumnOption,
161
163
  options: numericColumnOptions,
162
164
  placeholder: intl.get('Select_a_column'),
@@ -167,7 +169,8 @@ const DataSettings = _ref => {
167
169
  targetColumn: 'target_value_column'
168
170
  })), /*#__PURE__*/React.createElement(FormGroup, {
169
171
  className: "sea-chart-parameter-item"
170
- }, /*#__PURE__*/React.createElement("label", null, intl.get('Total_value_field')), /*#__PURE__*/React.createElement(DTableSelect, {
172
+ }, /*#__PURE__*/React.createElement("label", null, intl.get('Total_value_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
173
+ menuPortalTarget: "#sea-chart-settings-content",
171
174
  value: selectedTotalValueColumnOption,
172
175
  options: numericColumnOptions,
173
176
  placeholder: intl.get('Select_a_column'),
@@ -7,6 +7,7 @@ const DataSettings = _ref => {
7
7
  let {
8
8
  chart,
9
9
  tables,
10
+ dataSources,
10
11
  onChange: oldOnChange
11
12
  } = _ref;
12
13
  const onChange = useCallback(update => {
@@ -49,6 +50,7 @@ const DataSettings = _ref => {
49
50
  yLabel: 'Horizontal_axis',
50
51
  chart: newChart,
51
52
  tables: tables,
53
+ dataSources: dataSources,
52
54
  onChange: onChange
53
55
  });
54
56
  };
@@ -2,10 +2,10 @@ import React, { useCallback, useMemo, useState, useEffect } from 'react';
2
2
  import classnames from 'classnames';
3
3
  import { eventStopPropagation } from '../utils';
4
4
  import { BaseUtils } from '../utils';
5
- import { CHART_SETTINGS_TYPE, CHART_SETTINGS } from '../constants';
6
5
  import intl from '../intl';
7
- import DataSettings from './data-settings';
6
+ import { CHART_SETTINGS_TYPE, CHART_SETTINGS } from '../constants';
8
7
  import StyleSettings from './style-settings';
8
+ import DataSettings from './data-settings';
9
9
  import Divider from './widgets/divider';
10
10
  import './index.css';
11
11
  const Settings = _ref => {
@@ -74,6 +74,7 @@ const Settings = _ref => {
74
74
  })), /*#__PURE__*/React.createElement("div", {
75
75
  className: "chart-settings-container position-relative"
76
76
  }, /*#__PURE__*/React.createElement("div", {
77
+ id: "sea-chart-settings-content",
77
78
  className: "chart-settings-content"
78
79
  }, type === CHART_SETTINGS_TYPE.DATA && /*#__PURE__*/React.createElement(DataSettings, {
79
80
  dataSources: dataSources,
@@ -1,6 +1,6 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React from 'react';
2
3
  import { FormGroup, Label } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
4
  import intl from '../../../intl';
5
5
  import { getColumnOptions } from '../../../utils/column-utils';
6
6
  export default function LocationFieldSelector(_ref) {
@@ -20,7 +20,8 @@ export default function LocationFieldSelector(_ref) {
20
20
  geo_column_key: option.value.key
21
21
  });
22
22
  }
23
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement(Label, null, intl.get('Loaction_field')), /*#__PURE__*/React.createElement(DTableSelect, {
23
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement(Label, null, intl.get('Loaction_field')), /*#__PURE__*/React.createElement(_DTableSelect, {
24
+ menuPortalTarget: "#sea-chart-settings-content",
24
25
  placeholder: intl.get('Select_field'),
25
26
  noOptionsMessage: () => {
26
27
  return /*#__PURE__*/React.createElement("span", null, intl.get('No_column'));
@@ -1,5 +1,5 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React from 'react';
2
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
3
3
  import { FormGroup } from 'reactstrap';
4
4
  import { fixGeoGranularity } from '../../../utils';
5
5
  import { MAP_LEVELS } from '../../../constants/geolocation';
@@ -36,7 +36,8 @@ export default function MapLevelSelector(_ref) {
36
36
  };
37
37
  return /*#__PURE__*/React.createElement(FormGroup, {
38
38
  className: "statistic-chart-parameter-item"
39
- }, /*#__PURE__*/React.createElement("label", null, "\u5730\u56FE\u7EA7\u522B"), /*#__PURE__*/React.createElement(DTableSelect, {
39
+ }, /*#__PURE__*/React.createElement("label", null, "\u5730\u56FE\u7EA7\u522B"), /*#__PURE__*/React.createElement(_DTableSelect, {
40
+ menuPortalTarget: "#sea-chart-settings-content",
40
41
  value: getSelectedMapLevelOption(),
41
42
  options: mapLevelOptions,
42
43
  onChange: onSelectMapLevel
@@ -1,5 +1,5 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { Fragment } from 'react';
2
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
3
3
  import { FormGroup } from 'reactstrap';
4
4
  import { MAP_LEVEL } from '../../../constants';
5
5
  import { regions } from '../../../constants';
@@ -88,7 +88,8 @@ export default function MapProvinceCitySelector(_ref) {
88
88
  const citiesOptions = getProvinceCitiesOptions(province);
89
89
  return /*#__PURE__*/React.createElement("div", {
90
90
  className: "statistic-chart-parameter-item"
91
- }, /*#__PURE__*/React.createElement(DTableSelect, {
91
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
92
+ menuPortalTarget: "#sea-chart-settings-content",
92
93
  value: getSelectedCity(citiesOptions),
93
94
  options: citiesOptions,
94
95
  onChange: onSelectCity,
@@ -101,7 +102,8 @@ export default function MapProvinceCitySelector(_ref) {
101
102
  const isCity = mapLevel === MAP_LEVEL.CITY;
102
103
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(FormGroup, {
103
104
  className: "statistic-chart-parameter-item"
104
- }, /*#__PURE__*/React.createElement("label", null, isCity ? '城市' : '省份'), /*#__PURE__*/React.createElement(DTableSelect, {
105
+ }, /*#__PURE__*/React.createElement("label", null, isCity ? '城市' : '省份'), /*#__PURE__*/React.createElement(_DTableSelect, {
106
+ menuPortalTarget: "#sea-chart-settings-content",
105
107
  value: getSelectedProvinceOption(),
106
108
  options: provinceOptions,
107
109
  onChange: onSelectProvince,
@@ -1,7 +1,7 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useState } from 'react';
2
3
  import RcSlider from 'rc-slider';
3
4
  import { FormGroup } from 'reactstrap';
4
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
5
5
  import intl from '../../intl';
6
6
  import ColorGroupSelector from '../../components/color-setting/color-group-selector';
7
7
  import { LABEL_COLORS } from '../../constants/geolocation';
@@ -82,7 +82,8 @@ export default function MapStyleSetting(_ref) {
82
82
  }))));
83
83
  }))), /*#__PURE__*/React.createElement(Divider, {
84
84
  className: "mt-4"
85
- }), /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement("label", null, intl.get('Legend_direction')), /*#__PURE__*/React.createElement(DTableSelect, {
85
+ }), /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement("label", null, intl.get('Legend_direction')), /*#__PURE__*/React.createElement(_DTableSelect, {
86
+ menuPortalTarget: "#sea-chart-settings-content",
86
87
  value: legendDirectionOptionsMap[legend_direction],
87
88
  options: legendDirectionOptions,
88
89
  onChange: onDirectionChange
@@ -1,6 +1,6 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useCallback, useMemo } from 'react';
2
3
  import { Label, FormGroup } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
4
  import Switch from '../widgets/switch';
5
5
  import Divider from '../widgets/divider';
6
6
  import MiniNumSlicePercent from '../widgets/mininum-slice-percent';
@@ -118,13 +118,15 @@ const StyleSettings = _ref => {
118
118
  onChange: onDisplayLabelChange
119
119
  })), display_label && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, {
120
120
  className: "sea-chart-parameter-item"
121
- }, /*#__PURE__*/React.createElement(Label, null, intl.get('Label_position')), /*#__PURE__*/React.createElement(DTableSelect, {
121
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Label_position')), /*#__PURE__*/React.createElement(_DTableSelect, {
122
+ menuPortalTarget: "#sea-chart-settings-content",
122
123
  value: selectedLabelOption,
123
124
  onChange: onLabelPositionChange,
124
125
  options: labelPositionOptions
125
126
  })), /*#__PURE__*/React.createElement(FormGroup, {
126
127
  className: "sea-chart-parameter-item"
127
- }, /*#__PURE__*/React.createElement(Label, null, intl.get('Label_format')), /*#__PURE__*/React.createElement(DTableSelect, {
128
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Label_format')), /*#__PURE__*/React.createElement(_DTableSelect, {
129
+ menuPortalTarget: "#sea-chart-settings-content",
128
130
  value: selectedLabelFormat,
129
131
  onChange: onLabelFormatChange,
130
132
  options: labelFormatOptions
@@ -1,8 +1,8 @@
1
+ import _DTableSwitch from "dtable-ui-component/lib/DTableSwitch";
2
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
3
  import React, { useCallback, useMemo } from 'react';
2
4
  import { FormGroup, Label } from 'reactstrap';
3
5
  import { CellType, COLUMNS_ICON_CONFIG, DATE_COLUMN_OPTIONS, getTableById, getTableColumnByKey } from 'dtable-utils';
4
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
5
- import DTableSwitch from "dtable-ui-component/lib/DTableSwitch";
6
6
  import CommonDataSettings from '../widgets/common-data-settings';
7
7
  import Divider from '../widgets/divider';
8
8
  import GroupBy from '../widgets/group-by';
@@ -543,14 +543,15 @@ const DataSettings = _ref => {
543
543
  className: "mt-4"
544
544
  }), /*#__PURE__*/React.createElement(FormGroup, {
545
545
  className: "sea-chart-parameter-item"
546
- }, /*#__PURE__*/React.createElement(Label, null, intl.get('Summary_type')), /*#__PURE__*/React.createElement(DTableSelect, {
546
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Summary_type')), /*#__PURE__*/React.createElement(_DTableSelect, {
547
+ menuPortalTarget: "#sea-chart-settings-content",
547
548
  classNamePrefix: "chart-summary-types",
548
549
  value: getSelectedGroupType(),
549
550
  onChange: onGroupTypeChange,
550
551
  options: groupTypeOptions
551
552
  })), renderAdvancedStatistic(), /*#__PURE__*/React.createElement(FormGroup, {
552
553
  className: "sea-chart-parameter-item"
553
- }, /*#__PURE__*/React.createElement(DTableSwitch, {
554
+ }, /*#__PURE__*/React.createElement(_DTableSwitch, {
554
555
  switchClassName: "display-value-settings",
555
556
  checked: display_total,
556
557
  disabled: false,
@@ -564,7 +565,7 @@ const DataSettings = _ref => {
564
565
  className: "mt-4"
565
566
  }), /*#__PURE__*/React.createElement(FormGroup, {
566
567
  className: "sea-chart-parameter-item"
567
- }, /*#__PURE__*/React.createElement(DTableSwitch, {
568
+ }, /*#__PURE__*/React.createElement(_DTableSwitch, {
568
569
  switchClassName: "display-value-settings",
569
570
  checked: display_empty || false,
570
571
  disabled: false,
@@ -1,6 +1,6 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useCallback, useMemo } from 'react';
2
3
  import { Label, FormGroup } from 'reactstrap';
3
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
4
  import Switch from '../widgets/switch';
5
5
  import Divider from '../widgets/divider';
6
6
  import MinMaxSetting from '../widgets/min-max-setting';
@@ -145,7 +145,8 @@ const StyleSettings = _ref => {
145
145
  checked: x_axis_show_label || false,
146
146
  placeholder: intl.get('Display_title'),
147
147
  onChange: event => onAxisLabelShowChange(event, 'x_axis_show_label')
148
- }), x_axis_show_label && /*#__PURE__*/React.createElement(DTableSelect, {
148
+ }), x_axis_show_label && /*#__PURE__*/React.createElement(_DTableSelect, {
149
+ menuPortalTarget: "#sea-chart-settings-content",
149
150
  value: xAxisLabelPosition,
150
151
  options: xAxisLabelOptions,
151
152
  onChange: option => onAxisLabelPositionChange(option, 'x_axis_label_position')
@@ -158,7 +159,8 @@ const StyleSettings = _ref => {
158
159
  onChange: event => onAxisLabelShowChange(event, 'y_axis_show_label')
159
160
  }), y_axis_show_label && /*#__PURE__*/React.createElement("div", {
160
161
  className: "sea-chart-parameter-container"
161
- }, /*#__PURE__*/React.createElement(DTableSelect, {
162
+ }, /*#__PURE__*/React.createElement(_DTableSelect, {
163
+ menuPortalTarget: "#sea-chart-settings-content",
162
164
  value: yAxisLabelPosition,
163
165
  classNamePrefix: "chart-y-axis-label-position",
164
166
  options: yAxisLabelOptions,
@@ -1,7 +1,7 @@
1
+ import _DTableSelect from "dtable-ui-component/lib/DTableSelect";
1
2
  import React, { useCallback } from 'react';
2
3
  import { CellType } from 'dtable-utils';
3
4
  import { Label, FormGroup } from 'reactstrap';
4
- import DTableSelect from "dtable-ui-component/lib/DTableSelect";
5
5
  import intl from '../../intl';
6
6
  import CommonDataSettings from '../widgets/common-data-settings';
7
7
  import Divider from '../widgets/divider';
@@ -90,7 +90,7 @@ const DataSettings = _ref => {
90
90
  onlySupportDate: true,
91
91
  isRenderGroupBy: false,
92
92
  onGroupByChange: onXAxisColumnChange
93
- }), /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement(Label, null, intl.get('Comparison_mode')), /*#__PURE__*/React.createElement(DTableSelect, {
93
+ }), /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement(Label, null, intl.get('Comparison_mode')), /*#__PURE__*/React.createElement(_DTableSelect, {
94
94
  menuPortalTarget: '#wrapper',
95
95
  value: selectedGeolocationGranularity,
96
96
  options: getOptions(),