sea-chart 0.0.101 → 0.0.102

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.
@@ -19,6 +19,8 @@ export const ZH_CN_SUPPORT_CHARTS = [CHART_TYPE.MAP, CHART_TYPE.MAP_BUBBLE];
19
19
  export const SUPPORT_DATA_SORT_CHART_TYPES = [CHART_TYPE.BAR, CHART_TYPE.BAR_STACK, CHART_TYPE.LINE, CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.AREA, CHART_TYPE.TREE_MAP];
20
20
  export const SUPPORT_STACK_VALUE_CHART_TYPES = [CHART_TYPE.BAR_STACK, CHART_TYPE.BAR_CUSTOM];
21
21
  export const X_AXIS_IS_GROUPBY_COLUMN_KEY_CHART_TYPES = [CHART_TYPE.TABLE, CHART_TYPE.PIE, CHART_TYPE.RING, CHART_TYPE.TREE_MAP];
22
+ export const COMPLTETELESS_CHART_TYPES = [CHART_TYPE.COMPLETENESS, CHART_TYPE.COMPLETENESS_GROUP];
23
+ export const HORIZONTAL_BAR_CHART_TYPES = [CHART_TYPE.HORIZONTAL_BAR, CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR];
22
24
  export const CHART_CHART_MAP = {
23
25
  [CHART_TYPE.BAR]: CHART_TYPE.BAR,
24
26
  [CHART_TYPE.PIE]: CHART_TYPE.PIE,
@@ -250,6 +250,8 @@ const de = {
250
250
  "Display_empty_when_data_is_zero": "Wert 0 als leeren Wert anzeigen",
251
251
  "Use_default_color": "Standardfarbe verwenden",
252
252
  "Use_colors_in_single_select_solumn": "Verwenden Sie Farben in einer einzelnen Auswahlspalte",
253
- "Search_records": "Einträge suchen"
253
+ "Search_records": "Einträge suchen",
254
+ "Please_select_a_grouping_column": "Bitte Gruppierungsspalte auswählen",
255
+ "View": "Sicht"
254
256
  };
255
257
  export default de;
@@ -250,6 +250,8 @@ const en = {
250
250
  "Display_empty_when_data_is_zero": "Display empty when data is zero",
251
251
  "Use_default_color": "Use default color",
252
252
  "Use_colors_in_single_select_solumn": "Use colors in single select column",
253
- "Search_records": "Search records"
253
+ "Search_records": "Search records",
254
+ "Please_select_a_grouping_column": "Please select grouping column",
255
+ "View": "View"
254
256
  };
255
257
  export default en;
@@ -250,6 +250,8 @@ const es = {
250
250
  "Display_empty_when_data_is_zero": "Display empty when data is zero",
251
251
  "Use_default_color": "Use default color",
252
252
  "Use_colors_in_single_select_solumn": "Use colors in single select column",
253
- "Search_records": "Search records"
253
+ "Search_records": "Search records",
254
+ "Please_select_a_grouping_column": "Please select grouping column",
255
+ "View": "View"
254
256
  };
255
257
  export default es;
@@ -250,6 +250,8 @@ const fr = {
250
250
  "Display_empty_when_data_is_zero": "Afficher la valeur 0 comme valeur vide",
251
251
  "Use_default_color": "Utiliser la couleur par défaut",
252
252
  "Use_colors_in_single_select_solumn": "Utiliser les couleurs dans une colonne de sélection unique",
253
- "Search_records": "Rechercher des enregistrements"
253
+ "Search_records": "Rechercher des enregistrements",
254
+ "Please_select_a_grouping_column": "Veuillez sélectionner la colonne de regroupement",
255
+ "View": "Voir"
254
256
  };
255
257
  export default fr;
@@ -250,6 +250,8 @@ const pt = {
250
250
  "Display_empty_when_data_is_zero": "Display empty when data is zero",
251
251
  "Use_default_color": "Use default color",
252
252
  "Use_colors_in_single_select_solumn": "Use colors in single select column",
253
- "Search_records": "Search records"
253
+ "Search_records": "Search records",
254
+ "Please_select_a_grouping_column": "Please select grouping column",
255
+ "View": "View"
254
256
  };
255
257
  export default pt;
@@ -250,6 +250,8 @@ const ru = {
250
250
  "Display_empty_when_data_is_zero": "Display empty when data is zero",
251
251
  "Use_default_color": "Use default color",
252
252
  "Use_colors_in_single_select_solumn": "Use colors in single select column",
253
- "Search_records": "Search records"
253
+ "Search_records": "Search records",
254
+ "Please_select_a_grouping_column": "Please select grouping column",
255
+ "View": "View"
254
256
  };
255
257
  export default ru;
@@ -250,6 +250,8 @@ const zh_CN = {
250
250
  "Display_empty_when_data_is_zero": "数据为零时留空",
251
251
  "Use_default_color": "使用默认颜色",
252
252
  "Use_colors_in_single_select_solumn": "使用列中的选项颜色",
253
- "Search_records": "搜索记录"
253
+ "Search_records": "搜索记录",
254
+ "Please_select_a_grouping_column": "请选择一个分组列",
255
+ "View": "视图"
254
256
  };
255
257
  export default zh_CN;
@@ -114,7 +114,8 @@ export default function ScatterDataSettings(_ref) {
114
114
  label: intl.get('X_axis'),
115
115
  selectedTableId: table_id,
116
116
  selectedColumnKey: x_axis_column_key,
117
- onGroupByChange: onXAxisColumnChange
117
+ onGroupByChange: onXAxisColumnChange,
118
+ supportFormulaColumns: true
118
119
  }), /*#__PURE__*/React.createElement(_DTableSwitch, {
119
120
  checked: x_axis_include_empty_cells,
120
121
  placeholder: intl.get('Include_empty'),
@@ -128,7 +129,8 @@ export default function ScatterDataSettings(_ref) {
128
129
  label: intl.get('Y_axis'),
129
130
  selectedTableId: table_id,
130
131
  selectedColumnKey: y_axis_column_key,
131
- onGroupByChange: onYAxisColumnChange
132
+ onGroupByChange: onYAxisColumnChange,
133
+ supportFormulaColumns: true
132
134
  }), /*#__PURE__*/React.createElement(GroupBy, {
133
135
  tables: tables,
134
136
  label: intl.get('Group_by'),
@@ -102,7 +102,15 @@ class GroupBy extends Component {
102
102
  if ([CHART_TYPE.COMPLETENESS, CHART_TYPE.COMPLETENESS_GROUP].includes(type)) {
103
103
  newColumns = newColumns.filter(column => COMPLETENESS_GROUPBY_SUPPORTED_COLUMN_TYPE.includes(column.value.type));
104
104
  } else if (type === CHART_TYPE.SCATTER) {
105
- newColumns = newColumns.filter(column => NUMBERIC_COLUMN_TYPE.includes(column.value.type));
105
+ newColumns = newColumns.filter(column => {
106
+ if (column.value.type === CellType.FORMULA) {
107
+ return column.value.data.result_type === CellType.NUMBER;
108
+ } else if (column.value.type === CellType.LINK_FORMULA) {
109
+ return [CellType.NUMBER, CellType.RATE].includes(column.value.data.array_type);
110
+ } else {
111
+ return NUMBERIC_COLUMN_TYPE.includes(column.value.type);
112
+ }
113
+ });
106
114
  }
107
115
  if (isRenderNoUsed) {
108
116
  newColumns.unshift({
@@ -2,7 +2,7 @@ var _BaseUtils;
2
2
  import shallowEqual from 'shallowequal';
3
3
  import dayjs from 'dayjs';
4
4
  import { CellType, COLLABORATOR_COLUMN_TYPES, FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE, getDateDisplayString, getNumberDisplayString, getOption, getPrecisionNumber, getTableById, getTableColumnByKey, isNumber, isNumericColumn, isDateColumn, sortText, sortNumber, sortDate, sortSingleSelect, sortFormula, getColumnOptions, DateUtils, getGeolocationDisplayString, getFormulaDisplayString, isArchiveView, getViewById } from 'dtable-utils';
5
- import { PIE_CHART_COLORS, CHART_SUMMARY_TYPE, CHART_SUPPORT_SORT_COLUMNS, CHART_TYPE, CHART_STYLE_SETTING_KEYS, DEFAULT_LABEL_FONT_SIZE, DEFAULT_NUMBER_FORMAT_OBJECT, X_AXIS_IS_GROUPBY_COLUMN_KEY_CHART_TYPES, STYLE_COLORS, CHART_DATA_SORT_TYPE, CHART_Y_GROUP_TYPE } from '../../constants';
5
+ import { PIE_CHART_COLORS, CHART_SUMMARY_TYPE, CHART_SUPPORT_SORT_COLUMNS, CHART_TYPE, CHART_STYLE_SETTING_KEYS, DEFAULT_LABEL_FONT_SIZE, DEFAULT_NUMBER_FORMAT_OBJECT, X_AXIS_IS_GROUPBY_COLUMN_KEY_CHART_TYPES, STYLE_COLORS, CHART_DATA_SORT_TYPE, CHART_Y_GROUP_TYPE, HORIZONTAL_BAR_CHART_TYPES, COMPLTETELESS_CHART_TYPES } from '../../constants';
6
6
  import { getClientFormulaDisplayString } from '../cell-format-utils';
7
7
  import { getKnownCollaboratorByEmail, generateDefaultUser, getUsers } from '../collaborator-utils';
8
8
  import { getDateColumnFormat, getColumnByKey } from '../column-utils';
@@ -42,6 +42,12 @@ BaseUtils.isValidExistChart = (tables, chart) => {
42
42
  } = config;
43
43
  const table = getTableById(tables, table_id);
44
44
  if (!table) return false;
45
+ if (type === CHART_TYPE.SCATTER) {
46
+ const {
47
+ column_groupby_column_key
48
+ } = config;
49
+ if (!column_groupby_column_key) return false;
50
+ }
45
51
  if (config.type === CHART_TYPE.BASIC_NUMBER_CARD) {
46
52
  const {
47
53
  summary_type
@@ -108,6 +114,12 @@ BaseUtils.getGroupColumn = (table, chart) => {
108
114
  const {
109
115
  type
110
116
  } = config;
117
+ if (COMPLTETELESS_CHART_TYPES.includes(type)) {
118
+ return getTableColumnByKey(table, config.completed_column_key);
119
+ }
120
+ if (HORIZONTAL_BAR_CHART_TYPES.includes(type)) {
121
+ return getTableColumnByKey(table, config.vertical_axis_column_key);
122
+ }
111
123
  if (X_AXIS_IS_GROUPBY_COLUMN_KEY_CHART_TYPES.includes(type)) {
112
124
  return getTableColumnByKey(table, config.groupby_column_key);
113
125
  }
@@ -138,7 +150,7 @@ BaseUtils.getColumnGroupColumn = (table, chart) => {
138
150
  if (X_AXIS_IS_GROUPBY_COLUMN_KEY_CHART_TYPES.includes(type)) {
139
151
  return getTableColumnByKey(table, config.column_groupby_column_key);
140
152
  }
141
- if ([CHART_TYPE.BAR_GROUP, CHART_TYPE.BAR_STACK, CHART_TYPE.LINE_GROUP, CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.AREA_GROUP].includes(type)) {
153
+ if ([CHART_TYPE.BAR_GROUP, CHART_TYPE.BAR_STACK, CHART_TYPE.LINE_GROUP, CHART_TYPE.HORIZONTAL_GROUP_BAR, CHART_TYPE.STACKED_HORIZONTAL_BAR, CHART_TYPE.AREA_GROUP, CHART_TYPE.COMPLETENESS, CHART_TYPE.COMPLETENESS_GROUP].includes(type)) {
142
154
  return getTableColumnByKey(table, config.column_groupby_column_key);
143
155
  }
144
156
  if ([CHART_TYPE.MIRROR].includes(type)) {
@@ -157,18 +169,27 @@ BaseUtils.getSummaryColumn = (table, chart) => {
157
169
  summary_column_key,
158
170
  y_axis_summary_column_key,
159
171
  type,
160
- numeric_column_key
172
+ numeric_column_key,
173
+ horizontal_axis_column_key
161
174
  } = config;
162
175
  switch (type) {
176
+ case CHART_TYPE.COMPLETENESS:
177
+ case CHART_TYPE.COMPLETENESS_GROUP:
178
+ {
179
+ return getTableColumnByKey(table, config.target_column_key);
180
+ }
181
+ case CHART_TYPE.HORIZONTAL_BAR:
182
+ case CHART_TYPE.STACKED_HORIZONTAL_BAR:
183
+ case CHART_TYPE.HORIZONTAL_GROUP_BAR:
184
+ {
185
+ return getTableColumnByKey(table, horizontal_axis_column_key);
186
+ }
163
187
  case CHART_TYPE.BAR:
164
188
  case CHART_TYPE.BAR_GROUP:
165
189
  case CHART_TYPE.LINE:
166
190
  case CHART_TYPE.LINE_GROUP:
167
191
  case CHART_TYPE.AREA:
168
192
  case CHART_TYPE.AREA_GROUP:
169
- case CHART_TYPE.HORIZONTAL_BAR:
170
- case CHART_TYPE.STACKED_HORIZONTAL_BAR:
171
- case CHART_TYPE.HORIZONTAL_GROUP_BAR:
172
193
  case CHART_TYPE.BAR_STACK:
173
194
  {
174
195
  return getTableColumnByKey(table, y_axis_summary_column_key);
@@ -575,7 +596,7 @@ BaseUtils.formatPieChartData = (data, chart, tables, currentTheme, useColumnColo
575
596
  };
576
597
  // table
577
598
  // format SINGLE_SELECT, LAST_MODIFIER, CREATOR, COLLABORATOR, DATE, NUMBER
578
- BaseUtils.updateTableViewListItemNameAndColor = (result, column, nameKey, colorKey) => {
599
+ BaseUtils.updateTableViewListItemNameAndColor = (result, column, nameKey, colorKey, isScatterChart) => {
579
600
  let {
580
601
  type: columnType,
581
602
  data: columnData
@@ -632,11 +653,18 @@ BaseUtils.updateTableViewListItemNameAndColor = (result, column, nameKey, colorK
632
653
  }
633
654
  result[nameKey] = dayjs(name).format(format);
634
655
  }
656
+ } else if (columnType === CellType.LINK_FORMULA) {
657
+ // scatter only use number
658
+ if (isScatterChart) {
659
+ name.length && (name = name[0]);
660
+ let valueNumber = parseFloat(name);
661
+ result[nameKey] = isNumber(valueNumber) ? getNumberDisplayString(valueNumber, columnData) : name;
662
+ }
635
663
  }
636
664
  };
637
- BaseUtils.updateTableViewList = (result, column, nameKey, colorKey) => {
665
+ BaseUtils.updateTableViewList = (result, column, nameKey, colorKey, isScatter) => {
638
666
  result.forEach(result => {
639
- _BaseUtils.updateTableViewListItemNameAndColor(result, column, nameKey, colorKey);
667
+ _BaseUtils.updateTableViewListItemNameAndColor(result, column, nameKey, colorKey, isScatter);
640
668
  });
641
669
  };
642
670
  // sort chart
@@ -1618,7 +1646,7 @@ BaseUtils.updateCollaboratorAndMultipleAvg = (pivot_rows, all) => {
1618
1646
  let allCount = 0;
1619
1647
  cell.rows.forEach(r => {
1620
1648
  allSum = allSum + r["SUM(".concat(avgColumnName, ")")];
1621
- allCount = allCount + r["COUNT(*)"];
1649
+ allCount = allCount + r['COUNT(*)'];
1622
1650
  });
1623
1651
 
1624
1652
  // set avg, avg = sum / count
@@ -12,7 +12,6 @@ function updateBasicChartRows(results, index, name, dataItem, row) {
12
12
  } else {
13
13
  updatedResult = {
14
14
  ...dataItem,
15
- name,
16
15
  rows: [row]
17
16
  };
18
17
  results.push(updatedResult);
@@ -1685,14 +1685,15 @@ SQLStatisticsUtils.scatterSQLResult2JavaScript = (chart, sqlRows, chartSQLMap, c
1685
1685
  } = columnMap;
1686
1686
  // format sql rows
1687
1687
  const originalSqlRows = cloneDeep(sqlRows);
1688
- BaseUtils.updateTableViewList(sqlRows, groupbyColumn, groupbyColumn.key, 'color');
1689
- BaseUtils.updateTableViewList(sqlRows, summaryColumn, summaryColumn.key, 'color');
1688
+ const isScatter = true;
1689
+ BaseUtils.updateTableViewList(sqlRows, groupbyColumn, groupbyColumn.key, 'color', isScatter);
1690
+ BaseUtils.updateTableViewList(sqlRows, summaryColumn, summaryColumn.key, 'color', isScatter);
1690
1691
  if (sqlColumnGroupbyColumnKey) BaseUtils.updateTableViewList(sqlRows, columnGroupbyColumn, sqlColumnGroupbyColumnKey, 'color');
1691
1692
  const res = [];
1692
1693
  sqlRows.forEach((row, index) => {
1693
- const xValue = '' + row[sqlXColumnKey] || intl.get('Empty');
1694
- const yValue = '' + row[sqlYColumnKey] || intl.get('Empty');
1695
- const groupby = '' + row[sqlColumnGroupbyColumnKey] || intl.get('Empty');
1694
+ const xValue = row[sqlXColumnKey] ? '' + row[sqlXColumnKey] : intl.get('Empty');
1695
+ const yValue = row[sqlYColumnKey] ? '' + row[sqlYColumnKey] : intl.get('Empty');
1696
+ const groupby = row[sqlColumnGroupbyColumnKey] ? '' + row[sqlColumnGroupbyColumnKey] : null;
1696
1697
  const originalSqlRow = originalSqlRows[index];
1697
1698
  const originalXValue = originalSqlRow[sqlXColumnKey];
1698
1699
  const originalYValue = originalSqlRow[sqlYColumnKey];
@@ -1799,7 +1800,8 @@ SQLStatisticsUtils.calculateChart = (chart, value, callback, sqlRows) => {
1799
1800
  try {
1800
1801
  chartSQLMap = chartColumn2SqlColumn(newChart, table);
1801
1802
  } catch (error) {
1802
- const error_message = 'There_are_some_problems_with_the_filters';
1803
+ let error_message = 'There_are_some_problems_with_the_filters';
1804
+ if (error.message) error_message = error.message;
1803
1805
  return callback && callback(error_message, '', null);
1804
1806
  }
1805
1807
  const tipMessage = 'There_are_no_statistic_results_yet';
@@ -3,6 +3,7 @@ import { CHART_SUMMARY_TYPE, CHART_TYPE, DTABLE_DB_SUMMARY_METHOD, MAP_LEVEL } f
3
3
  import BaseUtils from '../chart-utils/base-utils';
4
4
  import { fixGeoGranularity } from '../map';
5
5
  import { getSqlGroup } from '../column-utils';
6
+ import intl from '../../intl';
6
7
  export const column2SqlColumn = function (column) {
7
8
  let {
8
9
  dateGranularity,
@@ -674,6 +675,7 @@ const scatterStatisticColumn2sqlColumn = (chart, table) => {
674
675
  });
675
676
  sqlColumnGroupbyColumnKey = key;
676
677
  }
678
+ if (!sqlColumnGroupbyColumnKey) throw Error(intl.get('Please_select_a_grouping_column'));
677
679
  return {
678
680
  sqlXColumnKey,
679
681
  sqlYColumnKey,
@@ -96,8 +96,8 @@ export function Scatter(_ref) {
96
96
  }).shape('circle').tooltip('groupby*name*value', (groupby, name, value) => {
97
97
  return {
98
98
  name: groupby || groupby === 0 ? groupby : intl.get('Empty'),
99
- valueX: "".concat(selectedXAxisColumn.name, ": ").concat(name),
100
- valueY: "".concat(selectedYAxisColumn.name, ": ").concat(value)
99
+ valueX: "".concat(selectedXAxisColumn === null || selectedXAxisColumn === void 0 ? void 0 : selectedXAxisColumn.name, ": ").concat(name),
100
+ valueY: "".concat(selectedYAxisColumn === null || selectedYAxisColumn === void 0 ? void 0 : selectedYAxisColumn.name, ": ").concat(value)
101
101
  };
102
102
  }).style({
103
103
  fillOpacity: 0.85
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sea-chart",
3
- "version": "0.0.101",
3
+ "version": "0.0.102",
4
4
  "main": "./dist/index.js",
5
5
  "dependencies": {
6
6
  "@antv/data-set": "0.11.8",