sea-chart 2.0.36-alpha.1 → 2.0.37
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 +59 -17
- package/dist/assets/css/sea-chart-d3-tooltip.css +1 -0
- package/dist/components/color-popover/color-rules-popover.js +2 -4
- package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +4 -5
- package/dist/components/icon/index.js +13 -9
- package/dist/components/number-input/index.js +13 -7
- package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +3 -7
- package/dist/components/popover/hide-column-popover/hide-column-popover.css +2 -6
- package/dist/components/popover/hide-column-popover/hide-column-popover.js +4 -2
- package/dist/components/popover/sort-popover/sort-popover.js +7 -6
- package/dist/components/statistic-record-dialog/index.js +8 -9
- package/dist/components/tooltip/index.js +8 -26
- package/dist/editor/index.js +1 -5
- package/dist/locale/lang/de.js +0 -1
- package/dist/locale/lang/en.js +0 -1
- package/dist/locale/lang/es.js +0 -1
- package/dist/locale/lang/fr.js +0 -1
- package/dist/locale/lang/pt.js +0 -1
- package/dist/locale/lang/ru.js +0 -1
- package/dist/locale/lang/zh_CN.js +0 -1
- package/dist/model/funnel.js +2 -2
- package/dist/services/map-json.js +2 -2
- package/dist/settings/advance-bar-settings/data-settings.js +1 -1
- package/dist/settings/advance-bar-settings/style-settings.js +2 -2
- package/dist/settings/bar-settings/data-settings.js +1 -1
- package/dist/settings/bar-settings/style-settings.js +2 -2
- package/dist/settings/basic-number-card/data-settings.js +2 -3
- package/dist/settings/combination-settings/data-settings.js +1 -0
- package/dist/settings/combination-settings/style-settings.js +2 -2
- package/dist/settings/dashboard-settings/data-settings.js +2 -3
- package/dist/settings/funnel-settings/components/funnel-layer-setting.js +7 -7
- package/dist/settings/index.js +3 -8
- package/dist/settings/table-element-settings/components/data-filter.js +25 -24
- package/dist/settings/table-element-settings/index.css +31 -1
- package/dist/settings/table-settings/data-settings.js +2 -3
- package/dist/settings/time-comparison-settings/style-settings.js +2 -2
- package/dist/settings/widgets/basic-summary/index.js +7 -8
- package/dist/settings/widgets/data-filter/index.js +22 -30
- package/dist/settings/widgets/group-by.js +3 -4
- package/dist/settings/widgets/summary-settings.js +2 -3
- package/dist/settings/widgets/y-axis-group-settings.js +2 -3
- package/dist/utils/cell-format-utils.js +7 -9
- package/dist/utils/chart-utils/base-utils.js +86 -194
- package/dist/utils/chart-utils/index.js +3 -5
- package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +5 -5
- package/dist/utils/chart-utils/original-data-utils/card-calculator.js +2 -8
- package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +3 -12
- package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +1 -4
- package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +0 -1
- package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +3 -24
- package/dist/utils/chart-utils/sql-statistics-utils.js +176 -161
- package/dist/utils/column-utils.js +7 -20
- package/dist/utils/contexts.js +2 -5
- package/dist/utils/index.js +4 -25
- package/dist/utils/row-record-utils.js +20 -100
- package/dist/utils/sql/column-2-sql-column.js +10 -10
- package/dist/utils/trend-utils.js +2 -15
- package/dist/view/index.css +8 -2
- package/dist/view/index.js +9 -14
- package/dist/view/wrapper/bar-compare.js +2 -18
- package/dist/view/wrapper/bar-group.js +5 -14
- package/dist/view/wrapper/basic-number-card.js +3 -24
- package/dist/view/wrapper/chart-component.js +6 -12
- package/dist/view/wrapper/dashboard.js +18 -68
- package/dist/view/wrapper/horizontal-bar-group.js +5 -25
- package/dist/view/wrapper/pie.js +1 -1
- package/dist/view/wrapper/ring.js +1 -1
- package/dist/view/wrapper/scatter.js +2 -5
- package/dist/view/wrapper/table/two-dimension-table.js +2 -3
- package/dist/view/wrapper/table-element/components/records-header/index.js +1 -0
- package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +1 -3
- package/dist/view/wrapper/table-element/index.js +21 -16
- package/dist/view/wrapper/trend.js +1 -21
- package/package.json +14 -17
package/dist/api/index.js
CHANGED
|
@@ -24,16 +24,42 @@ class SeaChartAPI {
|
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
26
|
this.getBaseData = () => {
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const {
|
|
28
|
+
dtableServer,
|
|
29
|
+
dtableUuid,
|
|
30
|
+
accessToken
|
|
31
|
+
} = this;
|
|
32
|
+
const url = dtableServer + 'dtables/' + dtableUuid;
|
|
33
|
+
const headers = {
|
|
34
|
+
'Authorization': 'Token ' + accessToken
|
|
35
|
+
};
|
|
36
|
+
return _axios.default.get(url, {
|
|
37
|
+
headers
|
|
38
|
+
});
|
|
29
39
|
};
|
|
30
40
|
this.getBaseMetaData = () => {
|
|
31
|
-
const
|
|
32
|
-
|
|
41
|
+
const {
|
|
42
|
+
dtableServer,
|
|
43
|
+
dtableUuid,
|
|
44
|
+
accessToken
|
|
45
|
+
} = this;
|
|
46
|
+
const url = dtableServer + 'api/v1/dtables/' + dtableUuid + '/metadata';
|
|
47
|
+
const headers = {
|
|
48
|
+
'Authorization': 'Token ' + accessToken
|
|
49
|
+
};
|
|
50
|
+
return _axios.default.get(url, {
|
|
51
|
+
headers
|
|
52
|
+
});
|
|
33
53
|
};
|
|
34
54
|
this.sqlQuery = function (sql, parameters) {
|
|
35
55
|
let convert_keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
36
|
-
|
|
56
|
+
// dtable-db
|
|
57
|
+
const {
|
|
58
|
+
dtableDB,
|
|
59
|
+
dtableUuid,
|
|
60
|
+
accessToken
|
|
61
|
+
} = _this;
|
|
62
|
+
const url = dtableDB + '/api/v2/dtables/' + dtableUuid + '/sql/';
|
|
37
63
|
const data = {
|
|
38
64
|
sql,
|
|
39
65
|
convert_keys,
|
|
@@ -41,16 +67,20 @@ class SeaChartAPI {
|
|
|
41
67
|
parameters: parameters
|
|
42
68
|
})
|
|
43
69
|
};
|
|
44
|
-
|
|
70
|
+
const headers = {
|
|
71
|
+
'Authorization': 'Token ' + accessToken
|
|
72
|
+
};
|
|
73
|
+
return _axios.default.post(url, data, {
|
|
74
|
+
headers
|
|
75
|
+
});
|
|
45
76
|
};
|
|
46
77
|
this.config = config;
|
|
47
|
-
const {
|
|
48
|
-
server: _server
|
|
49
|
-
} = config;
|
|
50
78
|
this.instance = null;
|
|
51
79
|
this.appName = '';
|
|
80
|
+
this.accessToken = '';
|
|
52
81
|
this.dtableUuid = '';
|
|
53
|
-
this.
|
|
82
|
+
this.dtableServer = '';
|
|
83
|
+
this.dtableSocket = '';
|
|
54
84
|
}
|
|
55
85
|
static getInstance(config) {
|
|
56
86
|
if (this.instance) return this.instance;
|
|
@@ -62,16 +92,28 @@ class SeaChartAPI {
|
|
|
62
92
|
const {
|
|
63
93
|
app_name,
|
|
64
94
|
access_token,
|
|
65
|
-
dtable_uuid
|
|
95
|
+
dtable_uuid,
|
|
96
|
+
dtable_server,
|
|
97
|
+
dtable_socket,
|
|
98
|
+
dtable_db
|
|
66
99
|
} = accessTokenRes.data;
|
|
67
100
|
this.appName = app_name;
|
|
101
|
+
this.accessToken = access_token;
|
|
68
102
|
this.dtableUuid = dtable_uuid;
|
|
69
|
-
this.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
'Authorization': 'Token ' + access_token
|
|
73
|
-
}
|
|
74
|
-
});
|
|
103
|
+
this.dtableServer = dtable_server.replace(/\/+$/, '') + '/';
|
|
104
|
+
this.dtableSocket = dtable_socket.replace(/\/+$/, '') + '/';
|
|
105
|
+
this.dtableDB = dtable_db.replace(/\/+$/, '') + '/';
|
|
75
106
|
}
|
|
107
|
+
|
|
108
|
+
// queryUsers(userIdList) {
|
|
109
|
+
// const { dtableServer, accessToken } = this;
|
|
110
|
+
// const url = dtableServer + 'api/v2.1/user-list';
|
|
111
|
+
// let operation = { user_id_list: userIdList };
|
|
112
|
+
// const headers = {
|
|
113
|
+
// 'Content-type': 'application/json',
|
|
114
|
+
// 'Authorization': 'Token ' + accessToken
|
|
115
|
+
// };
|
|
116
|
+
// return axios.post(url, operation, { headers });
|
|
117
|
+
// }
|
|
76
118
|
}
|
|
77
119
|
var _default = exports.default = SeaChartAPI;
|
|
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
-
var _dtableUtils = require("dtable-utils");
|
|
12
11
|
var _intl = _interopRequireDefault(require("../../intl"));
|
|
12
|
+
var _dtableUtils = require("dtable-utils");
|
|
13
13
|
var _commonAddTool = _interopRequireDefault(require("../common-add-tool"));
|
|
14
14
|
var _dtablePopover = _interopRequireDefault(require("../dtable-popover"));
|
|
15
15
|
var _colorRules = _interopRequireDefault(require("./color-rules"));
|
|
@@ -83,9 +83,7 @@ class ColorRulesPopover extends _react.Component {
|
|
|
83
83
|
switch (filterType) {
|
|
84
84
|
case _colorRules2.COLOR_RULE_FILTER_TYPE_MAP.NUMERIC_VALUE:
|
|
85
85
|
{
|
|
86
|
-
return
|
|
87
|
-
type: _dtableUtils.CellType.NUMBER
|
|
88
|
-
});
|
|
86
|
+
return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.NUMBER];
|
|
89
87
|
}
|
|
90
88
|
default:
|
|
91
89
|
{
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = DrillDownFieldsPopover;
|
|
9
|
-
var
|
|
9
|
+
var _dtableUtils = require("dtable-utils");
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _reactstrap = require("reactstrap");
|
|
12
12
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
@@ -101,9 +101,8 @@ function DrillDownFieldsPopover(_ref) {
|
|
|
101
101
|
}, /*#__PURE__*/_react.default.createElement("td", {
|
|
102
102
|
className: "pl-5 text-truncate",
|
|
103
103
|
title: column.name
|
|
104
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
105
|
-
|
|
106
|
-
className: "".concat(_indexModule.default['drill-down-fields-icon'], " mr-2")
|
|
104
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
105
|
+
className: "".concat(_dtableUtils.COLUMNS_ICON_CONFIG[column.type], " mr-2 ").concat(_indexModule.default['drill-down-fields-icon'])
|
|
107
106
|
}), /*#__PURE__*/_react.default.createElement("span", null, column.name)), /*#__PURE__*/_react.default.createElement("td", {
|
|
108
107
|
className: "".concat(_indexModule.default['column-checkbox'], " pr-3")
|
|
109
108
|
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
@@ -7,21 +7,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
require("./index.css");
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
})
|
|
10
|
+
const importAll = requireContext => {
|
|
11
|
+
requireContext.keys().forEach(requireContext);
|
|
12
|
+
};
|
|
13
|
+
try {
|
|
14
|
+
importAll(require.context('../../assets/icons', true, /\.svg$/));
|
|
15
|
+
} catch (error) {
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.log(error);
|
|
18
|
+
}
|
|
16
19
|
const Icon = props => {
|
|
17
20
|
const {
|
|
18
21
|
className,
|
|
19
22
|
symbol
|
|
20
23
|
} = props;
|
|
21
24
|
const iconClass = "sea-chart-icon sea-chart-icon-".concat(symbol, " ").concat(className || '');
|
|
22
|
-
|
|
23
|
-
return /*#__PURE__*/_react.default.createElement(IconComponent, {
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement("svg", {
|
|
24
26
|
className: iconClass
|
|
25
|
-
}
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement("use", {
|
|
28
|
+
xlinkHref: "#".concat(symbol)
|
|
29
|
+
}));
|
|
26
30
|
};
|
|
27
31
|
var _default = exports.default = Icon;
|
|
@@ -7,18 +7,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _reactstrap = require("reactstrap");
|
|
10
|
-
function NumberInput(
|
|
11
|
-
|
|
10
|
+
function NumberInput(props) {
|
|
11
|
+
const {
|
|
12
12
|
value,
|
|
13
13
|
onChange,
|
|
14
|
-
min
|
|
15
|
-
step
|
|
16
|
-
max
|
|
17
|
-
readOnly
|
|
14
|
+
min,
|
|
15
|
+
step,
|
|
16
|
+
max,
|
|
17
|
+
readOnly,
|
|
18
18
|
className,
|
|
19
19
|
useEmpty,
|
|
20
20
|
...otherProps
|
|
21
|
-
} =
|
|
21
|
+
} = props;
|
|
22
22
|
// useempty is used to control whether to use empty string or '0'
|
|
23
23
|
const number = value ? value : useEmpty ? '' : '0';
|
|
24
24
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.Input, Object.assign({
|
|
@@ -32,4 +32,10 @@ function NumberInput(_ref) {
|
|
|
32
32
|
onChange: onChange
|
|
33
33
|
}, otherProps));
|
|
34
34
|
}
|
|
35
|
+
NumberInput.defaultProps = {
|
|
36
|
+
min: 0,
|
|
37
|
+
step: 1,
|
|
38
|
+
max: Infinity,
|
|
39
|
+
readOnly: false
|
|
40
|
+
};
|
|
35
41
|
var _default = exports.default = NumberInput;
|
package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js
CHANGED
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _DTableSwitch2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSwitch"));
|
|
9
|
-
var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
|
|
10
9
|
var _react = _interopRequireDefault(require("react"));
|
|
11
10
|
class HideColumnItem extends _react.default.PureComponent {
|
|
12
11
|
constructor(props) {
|
|
@@ -48,14 +47,11 @@ class HideColumnItem extends _react.default.PureComponent {
|
|
|
48
47
|
const {
|
|
49
48
|
readonly
|
|
50
49
|
} = this.props;
|
|
51
|
-
const {
|
|
52
|
-
|
|
53
|
-
} = setting;
|
|
54
|
-
const placeholder = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
|
|
55
|
-
column: column
|
|
50
|
+
const placeholder = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
|
|
51
|
+
className: "dtable-font ".concat(setting.columnIcon)
|
|
56
52
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
57
53
|
className: "text-truncate"
|
|
58
|
-
},
|
|
54
|
+
}, setting.columnName));
|
|
59
55
|
return /*#__PURE__*/_react.default.createElement(_DTableSwitch2.default, {
|
|
60
56
|
checked: setting.isChecked,
|
|
61
57
|
disabled: readonly,
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
width: 192px;
|
|
3
3
|
display: inline-flex;
|
|
4
4
|
align-items: center;
|
|
5
|
-
padding-right: 5px;
|
|
6
5
|
margin: 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.hidden-column-popover .field-settings-body .dtable-switch.dropdown-item {
|
|
10
|
-
padding: 0 10px;
|
|
6
|
+
padding-right: 5px;
|
|
11
7
|
}
|
|
12
8
|
|
|
13
9
|
.hidden-column-popover .custom-switch .dtable-font {
|
|
@@ -39,4 +35,4 @@
|
|
|
39
35
|
border-radius: 50%;
|
|
40
36
|
transition: .3s left;
|
|
41
37
|
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .4);
|
|
42
|
-
}
|
|
38
|
+
}
|
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _reactstrap = require("reactstrap");
|
|
10
10
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
11
|
+
var _dtableUtils = require("dtable-utils");
|
|
11
12
|
var _intl = _interopRequireDefault(require("../../../intl"));
|
|
12
13
|
var _utils = require("../../../utils");
|
|
13
14
|
var _hideColumnItem = _interopRequireDefault(require("./hide-column-popover-widgets/hide-column-item"));
|
|
@@ -119,7 +120,7 @@ class HideColumnPopover extends _react.default.Component {
|
|
|
119
120
|
return fieldSettings;
|
|
120
121
|
}
|
|
121
122
|
return fieldSettings.filter(setting => {
|
|
122
|
-
return setting.
|
|
123
|
+
return setting.columnName.toLowerCase().includes(searchVal);
|
|
123
124
|
});
|
|
124
125
|
};
|
|
125
126
|
this.state = {
|
|
@@ -144,7 +145,8 @@ class HideColumnPopover extends _react.default.Component {
|
|
|
144
145
|
return {
|
|
145
146
|
key: column.key,
|
|
146
147
|
isChecked: shownColumnKeys.includes(column.key),
|
|
147
|
-
|
|
148
|
+
columnName: column.name,
|
|
149
|
+
columnIcon: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
|
|
148
150
|
};
|
|
149
151
|
});
|
|
150
152
|
// table page cannot hide first column
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _DTableCustomizeSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableCustomizeSelect"));
|
|
10
|
-
var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
|
|
11
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
11
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
13
12
|
var _reactstrap = require("reactstrap");
|
|
@@ -129,6 +128,7 @@ class SortPopover extends _react.Component {
|
|
|
129
128
|
const sortableColumns = columns.filter(column => _dtableUtils.SORT_COLUMN_OPTIONS.includes(column.type));
|
|
130
129
|
return sortableColumns.map(column => {
|
|
131
130
|
const {
|
|
131
|
+
type,
|
|
132
132
|
name
|
|
133
133
|
} = column;
|
|
134
134
|
return {
|
|
@@ -137,8 +137,8 @@ class SortPopover extends _react.Component {
|
|
|
137
137
|
},
|
|
138
138
|
label: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
139
139
|
className: "filter-header-icon"
|
|
140
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
141
|
-
|
|
140
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
141
|
+
className: _dtableUtils.COLUMNS_ICON_CONFIG[type]
|
|
142
142
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
143
143
|
className: "select-option-name"
|
|
144
144
|
}, name))
|
|
@@ -171,7 +171,8 @@ class SortPopover extends _react.Component {
|
|
|
171
171
|
};
|
|
172
172
|
this.renderSortItem = (column, sort, index) => {
|
|
173
173
|
let {
|
|
174
|
-
name
|
|
174
|
+
name,
|
|
175
|
+
type
|
|
175
176
|
} = column;
|
|
176
177
|
const {
|
|
177
178
|
readonly
|
|
@@ -179,8 +180,8 @@ class SortPopover extends _react.Component {
|
|
|
179
180
|
let selectedColumn = {
|
|
180
181
|
label: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
181
182
|
className: "filter-header-icon"
|
|
182
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
183
|
-
|
|
183
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
184
|
+
className: _dtableUtils.COLUMNS_ICON_CONFIG[type]
|
|
184
185
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
185
186
|
className: "select-option-name",
|
|
186
187
|
title: name,
|
|
@@ -22,7 +22,6 @@ var _rowRecordUtils = require("../../utils/row-record-utils");
|
|
|
22
22
|
var _rowCard = _interopRequireDefault(require("../row-card/row-card"));
|
|
23
23
|
var _commonConstants = require("../../constants/common-constants");
|
|
24
24
|
var _utils = require("../../utils");
|
|
25
|
-
var _constants = require("../../constants");
|
|
26
25
|
require("./index.css");
|
|
27
26
|
class StatisticRecordDialog extends _react.default.Component {
|
|
28
27
|
constructor(_props) {
|
|
@@ -65,11 +64,7 @@ class StatisticRecordDialog extends _react.default.Component {
|
|
|
65
64
|
// if more then 2 filters, use 'Or' conjunction to get them all
|
|
66
65
|
// if the statistic record is '_Others', use 'Or' conjunction to get them all
|
|
67
66
|
if ((detailFilterConditions === null || detailFilterConditions === void 0 ? void 0 : detailFilterConditions.filters.length) > 2 || statisticRecord.name === '_Others') {
|
|
68
|
-
|
|
69
|
-
detailFilterConditions.filter_conjunction = 'And';
|
|
70
|
-
} else {
|
|
71
|
-
detailFilterConditions.filter_conjunction = 'Or';
|
|
72
|
-
}
|
|
67
|
+
detailFilterConditions.filter_conjunction = 'Or';
|
|
73
68
|
}
|
|
74
69
|
_context.default.api.customQueryRows(currentElementId, detailFilterConditions).then(res => {
|
|
75
70
|
const {
|
|
@@ -360,10 +355,14 @@ class StatisticRecordDialog extends _react.default.Component {
|
|
|
360
355
|
zIndex: 1048
|
|
361
356
|
}, /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
362
357
|
className: "search-header"
|
|
363
|
-
}, /*#__PURE__*/_react.default.createElement("span", null, title), /*#__PURE__*/_react.default.createElement("
|
|
364
|
-
|
|
358
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, title), /*#__PURE__*/_react.default.createElement("button", {
|
|
359
|
+
type: "button",
|
|
360
|
+
className: "close",
|
|
361
|
+
"aria-label": "Close",
|
|
365
362
|
onClick: this.toggle
|
|
366
|
-
}
|
|
363
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
364
|
+
"aria-hidden": "true"
|
|
365
|
+
}, "\xD7"))), /*#__PURE__*/_react.default.createElement("div", {
|
|
367
366
|
className: "search-input-container"
|
|
368
367
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
369
368
|
className: "header-search-icon dtable-font dtable-icon-search"
|
|
@@ -25,10 +25,7 @@ const ToolTip = _ref => {
|
|
|
25
25
|
title: '',
|
|
26
26
|
items: []
|
|
27
27
|
};
|
|
28
|
-
|
|
29
|
-
// use layout effect to measure tooltip size and adjust its position before the browser paints,
|
|
30
|
-
// to preventing a visible flicker
|
|
31
|
-
(0, _react.useLayoutEffect)(() => {
|
|
28
|
+
(0, _react.useEffect)(() => {
|
|
32
29
|
if (!toolTipPosition) {
|
|
33
30
|
setPosition({
|
|
34
31
|
offsetX: -9999,
|
|
@@ -36,7 +33,7 @@ const ToolTip = _ref => {
|
|
|
36
33
|
});
|
|
37
34
|
return;
|
|
38
35
|
}
|
|
39
|
-
if (chart && toolTipPosition
|
|
36
|
+
if (chart && toolTipPosition) {
|
|
40
37
|
const width = Number(chart.node().getAttribute('width'));
|
|
41
38
|
const height = Number(chart.node().getAttribute('height'));
|
|
42
39
|
const {
|
|
@@ -51,26 +48,12 @@ const ToolTip = _ref => {
|
|
|
51
48
|
const insertPadding = 30;
|
|
52
49
|
let translateX = offsetX + distance;
|
|
53
50
|
let translateY = offsetY;
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const canShowOnRight = rightAvailableWidth >= tooltipWidth;
|
|
59
|
-
const canShowOnLeft = leftAvailableWidth >= tooltipWidth;
|
|
60
|
-
if (canShowOnRight) {
|
|
61
|
-
translateX = offsetX + distance;
|
|
62
|
-
} else if (canShowOnLeft) {
|
|
51
|
+
const endOffsetX = offsetX + distance + tooltipWidth + insertPadding;
|
|
52
|
+
const endOffsetY = offsetY + tooltipHeight + insertPadding;
|
|
53
|
+
// Right overflow
|
|
54
|
+
if (endOffsetX > width) {
|
|
63
55
|
translateX = offsetX - distance - tooltipWidth - insertPadding;
|
|
64
|
-
} else {
|
|
65
|
-
// If neither side has enough space, choose the side with more space.
|
|
66
|
-
if (rightAvailableWidth >= leftAvailableWidth) {
|
|
67
|
-
translateX = offsetX + distance;
|
|
68
|
-
} else {
|
|
69
|
-
translateX = offsetX - distance - tooltipWidth - insertPadding;
|
|
70
|
-
}
|
|
71
|
-
translateX = Math.max(minX, Math.min(translateX, maxX));
|
|
72
56
|
}
|
|
73
|
-
const endOffsetY = offsetY + tooltipHeight + insertPadding;
|
|
74
57
|
// Bottom overflow
|
|
75
58
|
if (endOffsetY > height) {
|
|
76
59
|
translateY = offsetY - (endOffsetY - height);
|
|
@@ -80,14 +63,13 @@ const ToolTip = _ref => {
|
|
|
80
63
|
offsetY: translateY
|
|
81
64
|
});
|
|
82
65
|
}
|
|
83
|
-
}, [chart, toolTipPosition]);
|
|
66
|
+
}, [chart, toolTipPosition, tooltipRef]);
|
|
84
67
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
85
68
|
ref: tooltipRef,
|
|
86
69
|
className: "sea-chart-d3-tooltip-container",
|
|
87
70
|
style: {
|
|
88
71
|
transform: "translate(".concat(position.offsetX, "px, ").concat(position.offsetY, "px)"),
|
|
89
|
-
|
|
90
|
-
opacity: position.offsetX === -9999 ? 0 : 1
|
|
72
|
+
display: position.offsetX === -9999 ? 'none' : 'block'
|
|
91
73
|
}
|
|
92
74
|
}, title && /*#__PURE__*/_react.default.createElement("div", {
|
|
93
75
|
className: "sea-chart-d3-tooltip-title"
|
package/dist/editor/index.js
CHANGED
|
@@ -10,11 +10,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
10
10
|
var _view = _interopRequireWildcard(require("../view"));
|
|
11
11
|
var _settings = _interopRequireWildcard(require("../settings"));
|
|
12
12
|
require("./index.css");
|
|
13
|
-
function Editor() {
|
|
14
|
-
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
15
|
-
...defaultProps,
|
|
16
|
-
...settingsDefaultProps
|
|
17
|
-
};
|
|
13
|
+
function Editor(props) {
|
|
18
14
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
19
15
|
className: "sea-chart-editor"
|
|
20
16
|
}, /*#__PURE__*/_react.default.createElement(_view.default, props), /*#__PURE__*/_react.default.createElement(_settings.default, props, props.children));
|
package/dist/locale/lang/de.js
CHANGED
|
@@ -153,7 +153,6 @@ const de = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Le temps d'exécution de la requête dépasse la limite. Les données ne peuvent pas être chargées.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "Die Filterbedingungen sind abnormal. Bitte setzen sie die Filterbedingungen in den Ansichtseinstellungen zurück.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Nicht verwendet",
|
|
158
157
|
"Select_field": "Feld auswählen",
|
|
159
158
|
"Display_total": "Gesamtwert anzeigen",
|
package/dist/locale/lang/en.js
CHANGED
|
@@ -153,7 +153,6 @@ const en = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Execution time of the query exceeds the limit. Data cannot be loaded.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "There are some problems with the filters.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Not used",
|
|
158
157
|
"Select_field": "Select field",
|
|
159
158
|
"Display_total": "Display total",
|
package/dist/locale/lang/es.js
CHANGED
|
@@ -153,7 +153,6 @@ const es = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Execution time of the query exceeds the limit. Data cannot be loaded.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "There are some problems with the filters.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Not used",
|
|
158
157
|
"Select_field": "Select field",
|
|
159
158
|
"Display_total": "Display total",
|
package/dist/locale/lang/fr.js
CHANGED
|
@@ -153,7 +153,6 @@ const fr = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Le temps d'exécution de la requête dépasse la limite. Les données ne peuvent pas être chargées.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "Les conditions de filtrage sont anormales. Veuillez réinitialiser les conditions de filtrage dans les paramètres de vue.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Ne pas utilisé",
|
|
158
157
|
"Select_field": "Sélectionner un champ",
|
|
159
158
|
"Display_total": "Afficher le total",
|
package/dist/locale/lang/pt.js
CHANGED
|
@@ -153,7 +153,6 @@ const pt = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Execution time of the query exceeds the limit. Data cannot be loaded.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "There are some problems with the filters.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Not used",
|
|
158
157
|
"Select_field": "Select field",
|
|
159
158
|
"Display_total": "Display total",
|
package/dist/locale/lang/ru.js
CHANGED
|
@@ -153,7 +153,6 @@ const ru = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "Execution time of the query exceeds the limit. Data cannot be loaded.",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "There are some problems with the filters.",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "Configure chart in element settings",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "The chart settings are invalid. Please contact the administrator for relevant configurations",
|
|
157
156
|
"Not_used": "Not used",
|
|
158
157
|
"Select_field": "Select field",
|
|
159
158
|
"Display_total": "Display total",
|
|
@@ -153,7 +153,6 @@ const zh_CN = {
|
|
|
153
153
|
"Execution_time_of_the_query_exceeds_the_limit": "查询的执行时间超出限制。无法加载数据。",
|
|
154
154
|
"There_are_some_problems_with_the_filters": "过滤器有一些问题。",
|
|
155
155
|
"Please_complete_the_chart_configuration_first": "在元素设置中配置图表",
|
|
156
|
-
"The_chart_settings_are_invalid_please_contact_the_administrator_for_relevant_configurations": "图表设置无效,请联系管理员进行相关配置",
|
|
157
156
|
"Not_used": "不使用",
|
|
158
157
|
"Select_field": "选择字段",
|
|
159
158
|
"Display_total": "显示总计",
|
package/dist/model/funnel.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _dtableUtils = require("dtable-utils");
|
|
9
|
-
var
|
|
9
|
+
var _lodashEs = require("lodash-es");
|
|
10
10
|
var _constants = require("../constants");
|
|
11
11
|
var _baseModel = _interopRequireDefault(require("./base-model"));
|
|
12
12
|
class Funnel extends _baseModel.default {
|
|
@@ -31,7 +31,7 @@ class Funnel extends _baseModel.default {
|
|
|
31
31
|
const table = tables.find(table => table._id === options.table_id);
|
|
32
32
|
const column = table.columns.find(column => column.key === options.x_axis_column_key);
|
|
33
33
|
if (column.type === _dtableUtils.CellType.SINGLE_SELECT) {
|
|
34
|
-
this.x_axis_option_list = (0,
|
|
34
|
+
this.x_axis_option_list = (0, _lodashEs.cloneDeep)(column.data.options);
|
|
35
35
|
} else {
|
|
36
36
|
this.x_axis_option_list = [];
|
|
37
37
|
}
|
|
@@ -38,11 +38,11 @@ function getMapJsonQueryUrl(mapLevel, mapLocation) {
|
|
|
38
38
|
switch (mapLevel) {
|
|
39
39
|
case _constants.MAP_LEVEL.WORLD:
|
|
40
40
|
{
|
|
41
|
-
return 'world
|
|
41
|
+
return 'world';
|
|
42
42
|
}
|
|
43
43
|
case _constants.MAP_LEVEL.COUNTRY:
|
|
44
44
|
{
|
|
45
|
-
return 'china
|
|
45
|
+
return 'china';
|
|
46
46
|
}
|
|
47
47
|
case _constants.MAP_LEVEL.PROVINCE:
|
|
48
48
|
{
|
|
@@ -46,7 +46,7 @@ const DataSettings = _ref => {
|
|
|
46
46
|
update['x_axis_date_granularity'] = null;
|
|
47
47
|
update['x_axis_geolocation_granularity'] = null;
|
|
48
48
|
} else {
|
|
49
|
-
if (_dtableUtils.DATE_COLUMN_OPTIONS.includes(type) || (0, _columnUtils.
|
|
49
|
+
if (_dtableUtils.DATE_COLUMN_OPTIONS.includes(type) || (0, _columnUtils.islinkDateFormula)(column)) {
|
|
50
50
|
update['x_axis_date_granularity'] = _constants.CHART_SUMMARY_TYPE.MONTH;
|
|
51
51
|
update['x_axis_geolocation_granularity'] = null;
|
|
52
52
|
} else if (type === _dtableUtils.CellType.GEOLOCATION) {
|
|
@@ -106,7 +106,7 @@ const StyleSettings = _ref => {
|
|
|
106
106
|
});
|
|
107
107
|
}, [chart, onChange]);
|
|
108
108
|
const onYAxisMinChange = (0, _react.useCallback)(min => {
|
|
109
|
-
const newMin =
|
|
109
|
+
const newMin = parseInt(min);
|
|
110
110
|
if (Number.isNaN(newMin)) return;
|
|
111
111
|
const {
|
|
112
112
|
config
|
|
@@ -120,7 +120,7 @@ const StyleSettings = _ref => {
|
|
|
120
120
|
});
|
|
121
121
|
}, [chart, onChange]);
|
|
122
122
|
const onYAxisMaxChange = (0, _react.useCallback)(max => {
|
|
123
|
-
const newMax =
|
|
123
|
+
const newMax = parseInt(max);
|
|
124
124
|
if (Number.isNaN(newMax)) return;
|
|
125
125
|
const {
|
|
126
126
|
config
|
|
@@ -46,7 +46,7 @@ const DataSettings = _ref => {
|
|
|
46
46
|
update['x_axis_date_granularity'] = null;
|
|
47
47
|
update['x_axis_geolocation_granularity'] = null;
|
|
48
48
|
} else {
|
|
49
|
-
if (_dtableUtils.DATE_COLUMN_OPTIONS.includes(type) || (0, _columnUtils.
|
|
49
|
+
if (_dtableUtils.DATE_COLUMN_OPTIONS.includes(type) || (0, _columnUtils.islinkDateFormula)(column)) {
|
|
50
50
|
update['x_axis_date_granularity'] = _constants.CHART_SUMMARY_TYPE.MONTH;
|
|
51
51
|
update['x_axis_geolocation_granularity'] = null;
|
|
52
52
|
} else if (type === _dtableUtils.CellType.GEOLOCATION) {
|
|
@@ -71,7 +71,7 @@ const StyleSettings = _ref => {
|
|
|
71
71
|
});
|
|
72
72
|
}, [chart, onChange]);
|
|
73
73
|
const onYAxisMinChange = (0, _react.useCallback)(min => {
|
|
74
|
-
const newMin =
|
|
74
|
+
const newMin = parseInt(min);
|
|
75
75
|
if (Number.isNaN(newMin)) return;
|
|
76
76
|
const {
|
|
77
77
|
config
|
|
@@ -85,7 +85,7 @@ const StyleSettings = _ref => {
|
|
|
85
85
|
});
|
|
86
86
|
}, [chart, onChange]);
|
|
87
87
|
const onYAxisMaxChange = (0, _react.useCallback)(max => {
|
|
88
|
-
const newMax =
|
|
88
|
+
const newMax = parseInt(max);
|
|
89
89
|
if (Number.isNaN(newMax)) return;
|
|
90
90
|
const {
|
|
91
91
|
config
|