sea-chart 2.0.40 → 2.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.js +4 -4
- package/dist/components/cell-factory/SimpleCellFormatter.js +1 -1
- package/dist/components/cell-factory/link-content.js +4 -4
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/color-popover/color-rules/color-rule.js +1 -1
- package/dist/components/color-popover/color-rules/index.js +1 -1
- package/dist/components/color-popover/color-rules-popover.js +6 -6
- package/dist/components/color-popover/color-selector-popover.js +2 -2
- package/dist/components/color-setting/color-group-selector.js +1 -1
- package/dist/components/common-add-tool/index.js +2 -2
- package/dist/components/data-process-setter/hide-column-setter.js +1 -1
- package/dist/components/data-process-setter/sort-setter.js +2 -2
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +4 -4
- package/dist/components/icon/index.js +1 -1
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +1 -1
- package/dist/components/popover/sort-popover/sort-popover.js +1 -1
- package/dist/components/row-card/row-card-header-cell.js +2 -2
- package/dist/components/row-card/row-card-header.js +1 -1
- package/dist/components/row-card/row-card-item.js +2 -2
- package/dist/components/row-card/row-card.js +2 -2
- package/dist/components/statistic-record-dialog/index.js +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/types-dialog/index.js +9 -10
- package/dist/context.js +2 -2
- package/dist/services/map-json.js +4 -4
- package/dist/settings/basic-number-card/style-settings.js +1 -1
- package/dist/settings/map-settings/map-style-settings.js +1 -1
- package/dist/settings/stacks-settings/index.js +1 -1
- package/dist/settings/style-settings.js +1 -1
- package/dist/settings/table-settings/data-settings.js +1 -1
- package/dist/settings/trend-settings/style-setting.js +2 -2
- package/dist/settings/widgets/date-summary-item.js +2 -2
- package/dist/settings/widgets/numeric-summary-item.js +2 -2
- package/dist/settings/widgets/summary-settings.js +2 -2
- package/dist/settings/widgets/switch/index.js +1 -1
- package/dist/settings/widgets/text-horizontal-settings.js +2 -2
- package/dist/settings/widgets/y-axis-group-settings.js +1 -1
- package/dist/utils/cell-value-utils.js +1 -1
- package/dist/utils/chart-utils/base-utils.js +8 -8
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +1 -1
- package/dist/utils/chart-utils/original-data-utils/compare-bar-chart-calculator.js +2 -2
- package/dist/utils/chart-utils/original-data-utils/completeness-calculator.js +1 -1
- package/dist/utils/chart-utils/sql-statistics-utils.js +8 -8
- package/dist/utils/collaborator-utils.js +1 -1
- package/dist/utils/collaborator.js +2 -2
- package/dist/utils/column-utils.js +12 -12
- package/dist/utils/common-utils.js +1 -1
- package/dist/utils/date-translate.js +1 -1
- package/dist/utils/object-utils.js +1 -1
- package/dist/utils/options-utils.js +2 -2
- package/dist/utils/row-record-utils.js +2 -2
- package/dist/utils/sql/chart-data-sql.js +58 -58
- package/dist/utils/sql/column-2-sql-column.js +18 -18
- package/dist/view/index.js +2 -2
- package/dist/view/title/index.js +2 -2
- package/dist/view/wrapper/area-group.js +3 -3
- package/dist/view/wrapper/area.js +6 -5
- package/dist/view/wrapper/bar-compare.js +4 -4
- package/dist/view/wrapper/bar-custom-stack.js +4 -4
- package/dist/view/wrapper/bar-group.js +8 -4
- package/dist/view/wrapper/bar-stack.js +3 -3
- package/dist/view/wrapper/bar.js +2 -2
- package/dist/view/wrapper/basic-number-card.js +8 -8
- package/dist/view/wrapper/chart-component.js +45 -44
- package/dist/view/wrapper/combination.js +6 -6
- package/dist/view/wrapper/completeness-group.js +7 -7
- package/dist/view/wrapper/completeness.js +4 -4
- package/dist/view/wrapper/dashboard.js +12 -9
- package/dist/view/wrapper/funnel.js +7 -2
- package/dist/view/wrapper/heat-map.js +8 -8
- package/dist/view/wrapper/horizontal-bar-group.js +7 -5
- package/dist/view/wrapper/horizontal-bar-stack.js +4 -4
- package/dist/view/wrapper/horizontal-bar.js +3 -3
- package/dist/view/wrapper/line-group.js +11 -5
- package/dist/view/wrapper/line.js +3 -3
- package/dist/view/wrapper/mirror.js +5 -5
- package/dist/view/wrapper/pie.js +4 -4
- package/dist/view/wrapper/ring.js +6 -6
- package/dist/view/wrapper/scatter.js +2 -2
- package/dist/view/wrapper/table/index.js +1 -1
- package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +3 -3
- package/dist/view/wrapper/table/pivot-table-display-name.js +1 -1
- package/dist/view/wrapper/table/two-dimension-table.js +9 -9
- package/dist/view/wrapper/table-element/components/formatter.js +14 -2
- package/dist/view/wrapper/table-element/components/formatters/FileFormatter/index.js +1 -1
- package/dist/view/wrapper/table-element/components/formatters/link-formatter.js +17 -17
- package/dist/view/wrapper/table-element/components/link-formatter.js +17 -17
- package/dist/view/wrapper/table-element/components/record.js +3 -3
- package/dist/view/wrapper/table-element/components/records.js +4 -4
- package/dist/view/wrapper/table-element/components/utils.js +1 -1
- package/dist/view/wrapper/table-element/css/index.css +79 -0
- package/dist/view/wrapper/treemap.js +2 -2
- package/dist/view/wrapper/trend.js +18 -18
- package/package.json +2 -2
|
@@ -33,31 +33,31 @@ class ChartDataSQL {
|
|
|
33
33
|
};
|
|
34
34
|
this._get_sql_order_by = (sortType, groupName) => {
|
|
35
35
|
if (!sortType) {
|
|
36
|
-
return
|
|
36
|
+
return `ORDER BY ${groupName}`;
|
|
37
37
|
}
|
|
38
38
|
return '';
|
|
39
39
|
};
|
|
40
40
|
this._update_filter_sql = (include_empty, column, method) => {
|
|
41
41
|
const column_name = (column === null || column === void 0 ? void 0 : column.name) || '';
|
|
42
42
|
if (!include_empty) {
|
|
43
|
-
const sql_column_name = method ?
|
|
44
|
-
const not_include_empty_sql =
|
|
43
|
+
const sql_column_name = method ? `${method}(\`${column_name}\`)` : `\`${column_name}\``;
|
|
44
|
+
const not_include_empty_sql = `${sql_column_name} IS NOT NULL`;
|
|
45
45
|
if (this.filter_sql) {
|
|
46
46
|
if (this.filter_sql.startsWith('WHERE')) {
|
|
47
47
|
this.filter_sql = this.filter_sql.slice(5);
|
|
48
48
|
}
|
|
49
|
-
this.filter_sql =
|
|
49
|
+
this.filter_sql = `WHERE ${not_include_empty_sql} AND ${this.filter_sql}`;
|
|
50
50
|
} else {
|
|
51
|
-
this.filter_sql =
|
|
51
|
+
this.filter_sql = `WHERE ${not_include_empty_sql}`;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
this._summary_column_2_sql = (summary_method, column) => {
|
|
56
56
|
const column_name = (column === null || column === void 0 ? void 0 : column.name) || '';
|
|
57
|
-
const valid_column_name =
|
|
58
|
-
if (summary_method === 'DISTINCT_VALUES') return
|
|
59
|
-
if (summary_method === 'ROW_COUNT') return
|
|
60
|
-
return
|
|
57
|
+
const valid_column_name = `\`${column_name}\``;
|
|
58
|
+
if (summary_method === 'DISTINCT_VALUES') return `COUNT(DISTINCT ${valid_column_name})`;
|
|
59
|
+
if (summary_method === 'ROW_COUNT') return `COUNT(${valid_column_name})`;
|
|
60
|
+
return `${_constants.DTABLE_DB_SUMMARY_METHOD[summary_method]}(${valid_column_name})`;
|
|
61
61
|
};
|
|
62
62
|
this._basic_statistic_2_sql = () => {
|
|
63
63
|
let x_axis_column_key, x_axis_date_granularity, x_axis_geolocation_granularity, x_axis_include_empty_cells, y_axis_summary_type, y_axis_summary_method, y_axis_summary_column_key;
|
|
@@ -102,9 +102,9 @@ class ChartDataSQL {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
if (summary_column_name) {
|
|
105
|
-
return
|
|
105
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
106
106
|
}
|
|
107
|
-
return
|
|
107
|
+
return `SELECT ${groupby_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
108
108
|
};
|
|
109
109
|
this._heat_map_statistic_2_sql = () => {
|
|
110
110
|
const {
|
|
@@ -131,7 +131,7 @@ class ChartDataSQL {
|
|
|
131
131
|
}
|
|
132
132
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
133
133
|
}
|
|
134
|
-
return
|
|
134
|
+
return `SELECT ${column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${column_name} LIMIT 0, 5000`;
|
|
135
135
|
};
|
|
136
136
|
this._mirror_map_statistic_2_sql = () => {
|
|
137
137
|
const {
|
|
@@ -163,7 +163,7 @@ class ChartDataSQL {
|
|
|
163
163
|
}
|
|
164
164
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
165
165
|
}
|
|
166
|
-
return
|
|
166
|
+
return `SELECT ${column_name}, ${column_groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${column_name}, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
167
167
|
};
|
|
168
168
|
this._trend_map_statistic_2_sql = () => {
|
|
169
169
|
const {
|
|
@@ -191,7 +191,7 @@ class ChartDataSQL {
|
|
|
191
191
|
}
|
|
192
192
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
193
193
|
}
|
|
194
|
-
return
|
|
194
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
195
195
|
};
|
|
196
196
|
this._grouping_statistic_2_sql = () => {
|
|
197
197
|
let x_axis_column_key, x_axis_date_granularity, x_axis_geolocation_granularity, x_axis_include_empty_cells, y_axis_summary_type, y_axis_summary_method, y_axis_summary_column_key;
|
|
@@ -236,7 +236,7 @@ class ChartDataSQL {
|
|
|
236
236
|
'geolocation_granularity': column_groupby_geolocation_granularity
|
|
237
237
|
});
|
|
238
238
|
const summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
239
|
-
return
|
|
239
|
+
return `SELECT ${groupby_column_name}, ${column_groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name}, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
240
240
|
}
|
|
241
241
|
if (column_groupby_multiple_numeric_column) {
|
|
242
242
|
let column_groupby_numeric_columns = summary_columns.slice(0);
|
|
@@ -257,7 +257,7 @@ class ChartDataSQL {
|
|
|
257
257
|
column_groupby_numeric_column_names.push(summary_column_name);
|
|
258
258
|
}
|
|
259
259
|
const column_groupby_numeric_column_names_string = column_groupby_numeric_column_names.join(', ');
|
|
260
|
-
return
|
|
260
|
+
return `SELECT ${groupby_column_name}, ${column_groupby_numeric_column_names_string} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
261
261
|
}
|
|
262
262
|
const summary_column = this._get_column_by_key(y_axis_summary_column_key);
|
|
263
263
|
if (!summary_column) return this._basic_statistic_2_sql();
|
|
@@ -265,13 +265,13 @@ class ChartDataSQL {
|
|
|
265
265
|
const column_groupby_column = this._get_column_by_key(column_groupby_column_key);
|
|
266
266
|
const summary_column_name = this._summary_column_2_sql(summary_method, summary_column);
|
|
267
267
|
if (!column_groupby_column) {
|
|
268
|
-
return
|
|
268
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
269
269
|
}
|
|
270
270
|
const column_groupby_column_name = this._chart_column_name_to_sql(column_groupby_column, {
|
|
271
271
|
'date_granularity': column_groupby_date_granularity,
|
|
272
272
|
'geolocation_granularity': column_groupby_geolocation_granularity
|
|
273
273
|
});
|
|
274
|
-
return
|
|
274
|
+
return `SELECT ${groupby_column_name}, ${column_groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name}, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
275
275
|
};
|
|
276
276
|
this._custom_statistic_2_sql = () => {
|
|
277
277
|
const {
|
|
@@ -310,7 +310,7 @@ class ChartDataSQL {
|
|
|
310
310
|
const numeric_column = this._get_column_by_key(item.column_key);
|
|
311
311
|
group_methods.push(this._summary_column_2_sql(_constants.DTABLE_DB_SUMMARY_METHOD[item.summary_method.toUpperCase()], numeric_column));
|
|
312
312
|
});
|
|
313
|
-
sql =
|
|
313
|
+
sql = `SELECT ${groupby_column_name}, ${group_methods.join(',')} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 5000`;
|
|
314
314
|
}
|
|
315
315
|
SQLs.push(sql);
|
|
316
316
|
}
|
|
@@ -359,9 +359,9 @@ class ChartDataSQL {
|
|
|
359
359
|
filter_sql = this.filter_sql.length === 0 ? 'where ' : this.filter_sql + ' AND';
|
|
360
360
|
const formattedXAxisDateRangeEnd = (0, _dayjs.default)(x_axis_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
361
361
|
const formattedXAxisComparedDateRangeEnd = (0, _dayjs.default)(x_axis_compared_date_range_end).add(1, 'days').format('YYYY-MM-DD');
|
|
362
|
-
filter_sql = filter_sql +
|
|
362
|
+
filter_sql = filter_sql + ` ((${groupby_column.name} >= '${x_axis_date_range_start}' AND ${groupby_column.name} < '${formattedXAxisDateRangeEnd}') Or (${groupby_column.name} >= '${x_axis_compared_date_range_start}' AND ${groupby_column.name} < '${formattedXAxisComparedDateRangeEnd}'))`;
|
|
363
363
|
}
|
|
364
|
-
return
|
|
364
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
365
365
|
};
|
|
366
366
|
this._combination_chart_statistic_2_sql = () => {
|
|
367
367
|
const x_axis_column_key = this.chart['x_axis_column_key'] || '';
|
|
@@ -392,13 +392,13 @@ class ChartDataSQL {
|
|
|
392
392
|
let summary_column_name = '';
|
|
393
393
|
if (right_summary_type === 'COUNT') {
|
|
394
394
|
summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
395
|
-
return
|
|
395
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
396
396
|
} else {
|
|
397
397
|
const right_summary_column = this._get_column_by_key(y_axis_right_summary_column);
|
|
398
398
|
if (right_summary_column) {
|
|
399
399
|
const right_summary_method = y_axis_right_summary_method.toUpperCase();
|
|
400
400
|
summary_column_name = this._summary_column_2_sql(right_summary_method, right_summary_column);
|
|
401
|
-
return
|
|
401
|
+
return `SELECT ${groupby_column_name}, COUNT(${groupby_column_name}), ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
}
|
|
@@ -438,7 +438,7 @@ class ChartDataSQL {
|
|
|
438
438
|
}
|
|
439
439
|
}
|
|
440
440
|
const column_groupby_numeric_column_names_string = column_groupby_numeric_column_names.join(', ');
|
|
441
|
-
return
|
|
441
|
+
return `SELECT ${groupby_column_name}, ${column_groupby_numeric_column_names_string} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
442
442
|
}
|
|
443
443
|
const summary_column = this._get_column_by_key(y_axis_left_summary_column);
|
|
444
444
|
const summary_method = y_axis_left_summary_method.toUpperCase();
|
|
@@ -455,11 +455,11 @@ class ChartDataSQL {
|
|
|
455
455
|
}
|
|
456
456
|
if (right_summary_column_name) {
|
|
457
457
|
if (left_summary_column_name === right_summary_column_name) {
|
|
458
|
-
return
|
|
458
|
+
return `SELECT ${groupby_column_name}, ${left_summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
459
459
|
}
|
|
460
|
-
return
|
|
460
|
+
return `SELECT ${groupby_column_name}, ${right_summary_column_name}, ${left_summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
461
461
|
}
|
|
462
|
-
return
|
|
462
|
+
return `SELECT ${groupby_column_name}, ${left_summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
463
463
|
};
|
|
464
464
|
this._summary_columns_2_sql = (summary_columns, summary_column_key, groupby_column, summary_method) => {
|
|
465
465
|
const summary_column = this._get_column_by_key(summary_column_key);
|
|
@@ -516,11 +516,11 @@ class ChartDataSQL {
|
|
|
516
516
|
summary_type = summary_type.toUpperCase();
|
|
517
517
|
if (summary_type === 'COUNT') {
|
|
518
518
|
const summary_column_name = this._summary_column_2_sql('COUNT', groupby_column);
|
|
519
|
-
return
|
|
519
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
520
520
|
}
|
|
521
521
|
if (summary_columns) {
|
|
522
522
|
const summary_column_names_str = this._summary_columns_2_sql(summary_columns, summary_column_key, groupby_column, summary_method);
|
|
523
|
-
return
|
|
523
|
+
return `SELECT ${groupby_column_name}, ${summary_column_names_str} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
524
524
|
}
|
|
525
525
|
summary_method = summary_method.toUpperCase();
|
|
526
526
|
let new_numeric_column_keys = [summary_column_key];
|
|
@@ -533,9 +533,9 @@ class ChartDataSQL {
|
|
|
533
533
|
}
|
|
534
534
|
});
|
|
535
535
|
if (numeric_column_names.length > 0) {
|
|
536
|
-
return
|
|
536
|
+
return `SELECT ${groupby_column_name}, ${numeric_column_names.join(', ')} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
537
537
|
}
|
|
538
|
-
return
|
|
538
|
+
return `SELECT ${groupby_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
539
539
|
};
|
|
540
540
|
this._two_dimension_statistic_table_2_sql = () => {
|
|
541
541
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
@@ -584,7 +584,7 @@ class ChartDataSQL {
|
|
|
584
584
|
summary_column_names_str = this._summary_columns_2_sql(summary_columns, summary_column_key, groupby_column, summary_method);
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
|
-
return
|
|
587
|
+
return `SELECT ${groupby_column_name}, ${column_groupby_column_name}, ${summary_column_names_str} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name}, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
588
588
|
};
|
|
589
589
|
this._pie_chart_statistic_2_sql = () => {
|
|
590
590
|
const groupby_column_key = this.chart['groupby_column_key'] || '';
|
|
@@ -620,14 +620,14 @@ class ChartDataSQL {
|
|
|
620
620
|
}
|
|
621
621
|
}
|
|
622
622
|
if (summary_column_name) {
|
|
623
|
-
return
|
|
623
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
624
624
|
}
|
|
625
|
-
return
|
|
625
|
+
return `SELECT ${groupby_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
626
626
|
};
|
|
627
627
|
this._basic_number_card_chart_statistic_2_sql = () => {
|
|
628
628
|
const summary_type = this.chart['summary_type'];
|
|
629
629
|
if (summary_type === _constants.CHART_Y_GROUP_TYPE.COUNT) {
|
|
630
|
-
return
|
|
630
|
+
return `SELECT COUNT(*) FROM ${this.table_name} ${this.filter_sql} LIMIT 0, 5000`;
|
|
631
631
|
}
|
|
632
632
|
const numeric_column_key = this.chart['numeric_column_key'] || '';
|
|
633
633
|
let summary_method = this.chart['summary_method'] || '';
|
|
@@ -643,7 +643,7 @@ class ChartDataSQL {
|
|
|
643
643
|
this._update_filter_sql(true, numeric_column);
|
|
644
644
|
summary_method = summary_method.toUpperCase();
|
|
645
645
|
const summary_column_name = this._summary_column_2_sql(summary_method, numeric_column);
|
|
646
|
-
return
|
|
646
|
+
return `SELECT ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} LIMIT 0, 5000`;
|
|
647
647
|
};
|
|
648
648
|
this._dashboard_chart_statistic_2_sql = () => {
|
|
649
649
|
const target_column_key = this.chart['target_value_column_key'] || '';
|
|
@@ -673,7 +673,7 @@ class ChartDataSQL {
|
|
|
673
673
|
this._update_filter_sql(true, target_column);
|
|
674
674
|
total_summary_method = total_summary_method.toUpperCase();
|
|
675
675
|
const total_summary_column_name = this._summary_column_2_sql(total_summary_method, total_column);
|
|
676
|
-
return
|
|
676
|
+
return `SELECT ${target_summary_column_name}, ${total_summary_column_name} FROM ${this.table_name} ${this.filter_sql} LIMIT 0, 5000`;
|
|
677
677
|
};
|
|
678
678
|
this._completeness_chart_statistic_2_sql = () => {
|
|
679
679
|
const groupby_column_key = this.chart['groupby_column_key'];
|
|
@@ -712,9 +712,9 @@ class ChartDataSQL {
|
|
|
712
712
|
'date_granularity': date_granularity,
|
|
713
713
|
'geolocation_granularity': geolocation_granularity
|
|
714
714
|
});
|
|
715
|
-
return
|
|
715
|
+
return `SELECT \`${groupby_column_name}\`, ${column_groupby_column_name}, SUM(\`${target_column_name}\`), SUM(\`${completed_column_name}\`) FROM ${this.table_name} ${this.filter_sql} GROUP BY \`${groupby_column_name}\`, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
716
716
|
}
|
|
717
|
-
return
|
|
717
|
+
return `SELECT \`${groupby_column_name}\`, \`${target_column_name}\`, \`${completed_column_name}\` FROM ${this.table_name} ${this.filter_sql} GROUP BY \`${groupby_column_name}\`, \`${target_column_name}\`, \`${completed_column_name}\` LIMIT 0, 5000`;
|
|
718
718
|
};
|
|
719
719
|
this._scatter_statistic_2_sql = () => {
|
|
720
720
|
const x_axis_column_key = this.chart['x_axis_column_key'];
|
|
@@ -754,9 +754,9 @@ class ChartDataSQL {
|
|
|
754
754
|
'date_granularity': date_granularity,
|
|
755
755
|
'geolocation_granularity': geolocation_granularity
|
|
756
756
|
});
|
|
757
|
-
return
|
|
757
|
+
return `SELECT \`${xAxisColumnName}\`, \`${yAxisColumnName}\`, ${column_groupby_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY \`${xAxisColumnName}\`, \`${yAxisColumnName}\`, ${column_groupby_column_name} LIMIT 0, 5000`;
|
|
758
758
|
}
|
|
759
|
-
return
|
|
759
|
+
return `SELECT \`${xAxisColumnName}\`, \`${yAxisColumnName}\` FROM ${this.table_name} ${this.filter_sql} GROUP BY \`${xAxisColumnName}\`, \`${yAxisColumnName}\` LIMIT 0, 5000`;
|
|
760
760
|
};
|
|
761
761
|
this._map_statistic_2_sql = () => {
|
|
762
762
|
const {
|
|
@@ -792,9 +792,9 @@ class ChartDataSQL {
|
|
|
792
792
|
}
|
|
793
793
|
}
|
|
794
794
|
if (summary_column_name) {
|
|
795
|
-
return
|
|
795
|
+
return `SELECT ${groupby_column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
796
796
|
}
|
|
797
|
-
return
|
|
797
|
+
return `SELECT ${groupby_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${groupby_column_name} LIMIT 0, 5000`;
|
|
798
798
|
};
|
|
799
799
|
this._world_map_basic_statistic_2_sql = () => {
|
|
800
800
|
const {
|
|
@@ -822,7 +822,7 @@ class ChartDataSQL {
|
|
|
822
822
|
}
|
|
823
823
|
summary_column_name = this._summary_column_2_sql(summary_method.toUpperCase(), summary_column);
|
|
824
824
|
}
|
|
825
|
-
return
|
|
825
|
+
return `SELECT ${column_name}, ${summary_column_name} FROM ${this.table_name} ${this.filter_sql} GROUP BY ${column_name} LIMIT 0, 5000`;
|
|
826
826
|
};
|
|
827
827
|
this.to_sql = () => {
|
|
828
828
|
if (this.error) {
|
|
@@ -979,7 +979,7 @@ class ChartDataSQL {
|
|
|
979
979
|
type
|
|
980
980
|
} = column || {};
|
|
981
981
|
if (type === _dtableUtils.CellType.SINGLE_SELECT || type === _dtableUtils.CellType.MULTIPLE_SELECT) {
|
|
982
|
-
return
|
|
982
|
+
return `'${name}'`;
|
|
983
983
|
}
|
|
984
984
|
if (type === _dtableUtils.CellType.NUMBER) {
|
|
985
985
|
const newName = Number(name);
|
|
@@ -992,7 +992,7 @@ class ChartDataSQL {
|
|
|
992
992
|
if (typeof newName === 'number') {
|
|
993
993
|
return newName;
|
|
994
994
|
}
|
|
995
|
-
return
|
|
995
|
+
return `'${newName}'`;
|
|
996
996
|
};
|
|
997
997
|
this.get_statistic_record_sql = (statItem, statisticRecord, _ref2) => {
|
|
998
998
|
let {
|
|
@@ -1032,36 +1032,36 @@ class ChartDataSQL {
|
|
|
1032
1032
|
}
|
|
1033
1033
|
let sqlString;
|
|
1034
1034
|
if (type === _constants.CHART_TYPE.TABLE) {
|
|
1035
|
-
let pivotGroupName =
|
|
1035
|
+
let pivotGroupName = `${isGroup ? `${columnGroupName}=${sqlGroupName}` : ''}`;
|
|
1036
1036
|
if (isColumn) {
|
|
1037
1037
|
if (this.filter_sql && pivotGroupName) {
|
|
1038
|
-
sqlString =
|
|
1038
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} and ${pivotGroupName} limit 5000`;
|
|
1039
1039
|
} else if (groupName && !this.filter_sql) {
|
|
1040
|
-
sqlString =
|
|
1040
|
+
sqlString = `select * from ${this.table_name} where ${pivotGroupName} limit 5000`;
|
|
1041
1041
|
} else {
|
|
1042
|
-
sqlString =
|
|
1042
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} limit 5000`;
|
|
1043
1043
|
}
|
|
1044
1044
|
return sqlString;
|
|
1045
1045
|
}
|
|
1046
1046
|
if (isRow) {
|
|
1047
1047
|
if (groupName && this.filter_sql) {
|
|
1048
|
-
sqlString =
|
|
1048
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} and ${groupName}=${sqlName} limit 5000`;
|
|
1049
1049
|
} else if (groupName && !this.filter_sql) {
|
|
1050
|
-
sqlString =
|
|
1050
|
+
sqlString = `select * from ${this.table_name} where ${groupName}=${sqlName} limit 5000`;
|
|
1051
1051
|
} else {
|
|
1052
|
-
sqlString =
|
|
1052
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} limit 5000`;
|
|
1053
1053
|
}
|
|
1054
1054
|
return sqlString;
|
|
1055
1055
|
}
|
|
1056
|
-
sqlString =
|
|
1056
|
+
sqlString = `select * from ${this.table_name} limit 5000`;
|
|
1057
1057
|
return sqlString;
|
|
1058
1058
|
}
|
|
1059
1059
|
if (groupName && this.filter_sql) {
|
|
1060
|
-
sqlString =
|
|
1060
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} and ${groupName}=${sqlName} ${isGroup ? `and ${columnGroupName}=${sqlGroupName}` : ''} limit 5000`;
|
|
1061
1061
|
} else if (groupName && !this.filter_sql) {
|
|
1062
|
-
sqlString =
|
|
1062
|
+
sqlString = `select * from ${this.table_name} where ${groupName}=${sqlName} ${isGroup ? `and ${columnGroupName}=${sqlGroupName}` : ''} limit 5000`;
|
|
1063
1063
|
} else {
|
|
1064
|
-
sqlString =
|
|
1064
|
+
sqlString = `select * from ${this.table_name} ${this.filter_sql} limit 5000`;
|
|
1065
1065
|
}
|
|
1066
1066
|
return sqlString;
|
|
1067
1067
|
};
|
|
@@ -1071,7 +1071,7 @@ class ChartDataSQL {
|
|
|
1071
1071
|
this.chart = (chart === null || chart === void 0 ? void 0 : chart.config) || {};
|
|
1072
1072
|
this.username = username;
|
|
1073
1073
|
const table_name = (table === null || table === void 0 ? void 0 : table.name) || '';
|
|
1074
|
-
this.table_name =
|
|
1074
|
+
this.table_name = `\`${table_name}\``;
|
|
1075
1075
|
this.userId = userId;
|
|
1076
1076
|
this.userDepartmentIdsMap = userDepartmentIdsMap;
|
|
1077
1077
|
this.chart_type = (chart === null || chart === void 0 ? void 0 : (_chart$config = chart.config) === null || _chart$config === void 0 ? void 0 : _chart$config.type) || '';
|
|
@@ -21,7 +21,7 @@ const column2SqlColumn = function (column) {
|
|
|
21
21
|
name,
|
|
22
22
|
key
|
|
23
23
|
} = column;
|
|
24
|
-
const validColumnName =
|
|
24
|
+
const validColumnName = `\`${name}\``;
|
|
25
25
|
const startOfWeek = (0, _index.getFirstDayOfWeekForGroupby)('app').toLowerCase();
|
|
26
26
|
switch (true) {
|
|
27
27
|
case (0, _columnUtils.isDateColumn)(column):
|
|
@@ -29,48 +29,48 @@ const column2SqlColumn = function (column) {
|
|
|
29
29
|
{
|
|
30
30
|
const validDateGranularity = dateGranularity && dateGranularity.toUpperCase();
|
|
31
31
|
if (['DAY', 'DAYS_7', 'DAYS_30'].includes(validDateGranularity)) {
|
|
32
|
-
const sqlColumnName =
|
|
32
|
+
const sqlColumnName = `ISODATE(${validColumnName})`;
|
|
33
33
|
return {
|
|
34
34
|
name: sqlColumnName,
|
|
35
35
|
key: sqlColumnName
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
if (validDateGranularity === 'WEEK') {
|
|
39
|
-
const sqlColumnName =
|
|
39
|
+
const sqlColumnName = `ISODATE(STARTOFWEEK(${validColumnName}, "${startOfWeek}"))`;
|
|
40
40
|
return {
|
|
41
41
|
name: sqlColumnName,
|
|
42
42
|
key: sqlColumnName
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
if (validDateGranularity === 'MONTH') {
|
|
46
|
-
const sqlColumnName =
|
|
46
|
+
const sqlColumnName = `ISOMONTH(${validColumnName})`;
|
|
47
47
|
return {
|
|
48
48
|
name: sqlColumnName,
|
|
49
49
|
key: sqlColumnName
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
if (validDateGranularity === 'QUARTER') {
|
|
53
|
-
const sqlColumnName =
|
|
53
|
+
const sqlColumnName = `CONCATENATE(year(${validColumnName}), "-Q", quarter(${validColumnName}))`;
|
|
54
54
|
return {
|
|
55
55
|
name: sqlColumnName,
|
|
56
56
|
key: sqlColumnName
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
if (validDateGranularity === 'YEAR') {
|
|
60
|
-
const sqlColumnName =
|
|
60
|
+
const sqlColumnName = `YEAR(${validColumnName})`;
|
|
61
61
|
return {
|
|
62
62
|
name: sqlColumnName,
|
|
63
63
|
key: sqlColumnName
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
if (validDateGranularity === 'MAX' || validDateGranularity === 'MIN') {
|
|
67
|
-
const sqlColumnName =
|
|
67
|
+
const sqlColumnName = `${validDateGranularity}(${validColumnName})`;
|
|
68
68
|
return {
|
|
69
69
|
name: sqlColumnName,
|
|
70
70
|
key: sqlColumnName
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
const sqlColumnName =
|
|
73
|
+
const sqlColumnName = `ISOMONTH(${validColumnName})`;
|
|
74
74
|
return {
|
|
75
75
|
name: sqlColumnName,
|
|
76
76
|
key: sqlColumnName
|
|
@@ -80,21 +80,21 @@ const column2SqlColumn = function (column) {
|
|
|
80
80
|
{
|
|
81
81
|
const validGeolocationGranularity = geolocationGranularity && geolocationGranularity.toUpperCase();
|
|
82
82
|
if (validGeolocationGranularity === 'PROVINCE') {
|
|
83
|
-
const sqlColumnName =
|
|
83
|
+
const sqlColumnName = `PROVINCE(${validColumnName})`;
|
|
84
84
|
return {
|
|
85
85
|
name: sqlColumnName,
|
|
86
86
|
key: sqlColumnName
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
if (validGeolocationGranularity === 'CITY') {
|
|
90
|
-
const sqlColumnName =
|
|
90
|
+
const sqlColumnName = `CITY(${validColumnName})`;
|
|
91
91
|
return {
|
|
92
92
|
name: sqlColumnName,
|
|
93
93
|
key: sqlColumnName
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
96
|
if (validGeolocationGranularity === 'DISTRICT') {
|
|
97
|
-
const sqlColumnName =
|
|
97
|
+
const sqlColumnName = `DISTRICT(${validColumnName})`;
|
|
98
98
|
return {
|
|
99
99
|
name: sqlColumnName,
|
|
100
100
|
key: sqlColumnName
|
|
@@ -120,13 +120,13 @@ const summaryMethodColumn2SqlColumn = function (summaryMethod) {
|
|
|
120
120
|
const columnName = column.name || '';
|
|
121
121
|
if (summaryMethod === _constants.DTABLE_DB_SUMMARY_METHOD.DISTINCT_VALUES) {
|
|
122
122
|
return {
|
|
123
|
-
name:
|
|
124
|
-
key:
|
|
123
|
+
name: `${_constants.DTABLE_DB_SUMMARY_METHOD.COUNT}(DISTINCT ${columnName})`,
|
|
124
|
+
key: `${_constants.DTABLE_DB_SUMMARY_METHOD.COUNT}(DISTINCT ${columnName})`
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
127
|
return {
|
|
128
|
-
name:
|
|
129
|
-
key:
|
|
128
|
+
name: `${_constants.DTABLE_DB_SUMMARY_METHOD[summaryMethod]}(\`${columnName}\`)`,
|
|
129
|
+
key: `${_constants.DTABLE_DB_SUMMARY_METHOD[summaryMethod]}(${columnName})`
|
|
130
130
|
};
|
|
131
131
|
};
|
|
132
132
|
exports.summaryMethodColumn2SqlColumn = summaryMethodColumn2SqlColumn;
|
|
@@ -958,7 +958,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
958
958
|
time_column_key
|
|
959
959
|
} = statItem;
|
|
960
960
|
selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, time_column_key);
|
|
961
|
-
groupName =
|
|
961
|
+
groupName = `ISODATE(${selectedColumn.name})`;
|
|
962
962
|
break;
|
|
963
963
|
}
|
|
964
964
|
case _constants.CHART_TYPE.SCATTER:
|
|
@@ -1007,7 +1007,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1007
1007
|
} = statItem;
|
|
1008
1008
|
selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, x_axis_column_key);
|
|
1009
1009
|
if (!selectedColumn) return [];
|
|
1010
|
-
groupName =
|
|
1010
|
+
groupName = `\`${selectedColumn.name}\``;
|
|
1011
1011
|
if ([_dtableUtils.CellType.CTIME, _dtableUtils.CellType.MTIME, _dtableUtils.CellType.DATE].includes(selectedColumn.type)) {
|
|
1012
1012
|
const {
|
|
1013
1013
|
name
|
|
@@ -1047,7 +1047,7 @@ const getDatabaseGroupName = (statItem, selectedTable) => {
|
|
|
1047
1047
|
groupby_column_key
|
|
1048
1048
|
} = statItem;
|
|
1049
1049
|
selectedColumn = (0, _dtableUtils.getTableColumnByKey)(selectedTable, groupby_column_key);
|
|
1050
|
-
groupName =
|
|
1050
|
+
groupName = `\`${selectedColumn.name}\``;
|
|
1051
1051
|
break;
|
|
1052
1052
|
}
|
|
1053
1053
|
case _constants.CHART_TYPE.DASHBOARD:
|
package/dist/view/index.js
CHANGED
|
@@ -308,13 +308,13 @@ class View extends _react.default.PureComponent {
|
|
|
308
308
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
309
309
|
className: validClassName
|
|
310
310
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
311
|
-
className: (0, _classnames.default)('sea-chart-formatter-container',
|
|
311
|
+
className: (0, _classnames.default)('sea-chart-formatter-container', `sea-chart-${chart === null || chart === void 0 ? void 0 : (_chart$config3 = chart.config) === null || _chart$config3 === void 0 ? void 0 : _chart$config3.type}-formatter-container`, {
|
|
312
312
|
'big_screen_plugin': isBigScreenPlugin
|
|
313
313
|
})
|
|
314
314
|
}, !hideTitle && /*#__PURE__*/_react.default.createElement(_title.default, {
|
|
315
315
|
chart: chart
|
|
316
316
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
317
|
-
id:
|
|
317
|
+
id: `sea-chart-cavans-container-${chart.id}`,
|
|
318
318
|
className: (0, _classnames.default)('sea-chart-cavans-container')
|
|
319
319
|
}, /*#__PURE__*/_react.default.createElement(_wrapper.default, {
|
|
320
320
|
chart: chart,
|
package/dist/view/title/index.js
CHANGED
|
@@ -19,7 +19,7 @@ const Title = _ref => {
|
|
|
19
19
|
const getTitleStyle = (0, _react.useCallback)(() => {
|
|
20
20
|
var _chart$style_config, _chart$style_config2;
|
|
21
21
|
let style = {
|
|
22
|
-
fontSize:
|
|
22
|
+
fontSize: `${_constants.DEFAULT_CHART_TITLE_FONT_SIZE}px`,
|
|
23
23
|
fontWeight: _constants.DEFAULT_CHART_FONT_WEIGHT
|
|
24
24
|
};
|
|
25
25
|
if (!chart || !chart.style_config || !((_chart$style_config = chart.style_config) !== null && _chart$style_config !== void 0 && _chart$style_config.title)) {
|
|
@@ -32,7 +32,7 @@ const Title = _ref => {
|
|
|
32
32
|
horizontal_align
|
|
33
33
|
} = (_chart$style_config2 = chart.style_config) === null || _chart$style_config2 === void 0 ? void 0 : _chart$style_config2.title;
|
|
34
34
|
if ((0, _dtableUtils.isNumber)(font_size)) {
|
|
35
|
-
style.fontSize = font_size < 0 ? 0 :
|
|
35
|
+
style.fontSize = font_size < 0 ? 0 : `${font_size}px`;
|
|
36
36
|
}
|
|
37
37
|
if (_constants.CHART_SUPPORT_FONT_WEIGHTS.includes(font_weight)) {
|
|
38
38
|
style.fontWeight = font_weight;
|
|
@@ -96,12 +96,12 @@ class AreaGroup extends _chartComponent.default {
|
|
|
96
96
|
// Y axis
|
|
97
97
|
const niceEnd = d3.nice(0, d3.max(data, d => d.value), 5)[1];
|
|
98
98
|
const y = d3.scaleLinear().domain(y_axis_auto_range ? [0, niceEnd] : [y_axis_min || 0, y_axis_max || niceEnd]).range([chartHeight - insertPadding, insertPadding + marginTop]);
|
|
99
|
-
this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform',
|
|
99
|
+
this.chart.append('g').attr('class', 'y-axis-wrapper').attr('transform', `translate(${insertPadding}, 0)`).call(d3.axisLeft(y).tickSizeInner(0).ticks(5).tickFormat(d => _utils.BaseUtils.getSummaryValueDisplayString(summaryColumn, d, y_axis_summary_method))).call(g => this.drawYaxis(g, theme));
|
|
100
100
|
|
|
101
101
|
// X axis
|
|
102
102
|
const xDomain = data.map(item => item.name);
|
|
103
103
|
const x = d3.scaleBand().domain(xDomain).range([insertPadding + this.horizontalOverflowOffset, chartWidth - insertPadding]).paddingInner(0.5).paddingOuter(0.1);
|
|
104
|
-
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform',
|
|
104
|
+
this.chart.append('g').attr('class', 'x-axis-wrapper').attr('transform', `translate(0, ${chartHeight - insertPadding})`).call(d3.axisBottom(x).tickSizeOuter(0).tickSizeInner(5)).call(g => {
|
|
105
105
|
this.ticksAddName(g);
|
|
106
106
|
g.selectAll('.domain').attr('stroke', theme.XAxisColor);
|
|
107
107
|
g.selectAll('.tick line').attr('stroke', theme.XAxisColor);
|
|
@@ -164,7 +164,7 @@ class AreaGroup extends _chartComponent.default {
|
|
|
164
164
|
} = g.node().getBoundingClientRect();
|
|
165
165
|
const translateX = Number(curCircleEl.getAttribute('cx')) - width / 2;
|
|
166
166
|
const translateY = Number(curCircleEl.getAttribute('cy')) - 10;
|
|
167
|
-
g.attr('transform',
|
|
167
|
+
g.attr('transform', `translate(${translateX}, ${translateY})`);
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
170
|
}).on('click', (event, data) => {
|