sea-chart 1.1.123 → 1.1.125
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/components/data-process-setter/hide-column-setter.js +14 -3
- package/dist/view/wrapper/table-element/components/formatter.js +41 -5
- package/dist/view/wrapper/table-element/components/records-header/index.js +1 -1
- package/dist/view/wrapper/table-element/css/index.css +87 -1
- package/package.json +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { CellType } from 'dtable-utils';
|
|
2
3
|
import HideColumnPopover from '../popover/hide-column-popover/hide-column-popover';
|
|
3
4
|
import intl from '../../intl';
|
|
4
5
|
class HideColumnSetter extends React.Component {
|
|
@@ -19,8 +20,17 @@ class HideColumnSetter extends React.Component {
|
|
|
19
20
|
});
|
|
20
21
|
};
|
|
21
22
|
this.modifyHiddenColumns = shownColumnKeys => {
|
|
23
|
+
const {
|
|
24
|
+
columns = []
|
|
25
|
+
} = this.props;
|
|
26
|
+
const {
|
|
27
|
+
shownColumnKeys: currentShownColumnKeys = []
|
|
28
|
+
} = this.state;
|
|
29
|
+
const buttonColumnKeys = columns.filter(column => column.type === CellType.BUTTON).map(column => column.key);
|
|
30
|
+
const preservedButtonColumnKeys = currentShownColumnKeys.filter(columnKey => buttonColumnKeys.includes(columnKey));
|
|
31
|
+
const mergedShownColumnKeys = shownColumnKeys.concat(preservedButtonColumnKeys.filter(columnKey => !shownColumnKeys.includes(columnKey)));
|
|
22
32
|
this.setState({
|
|
23
|
-
shownColumnKeys
|
|
33
|
+
shownColumnKeys: mergedShownColumnKeys
|
|
24
34
|
});
|
|
25
35
|
};
|
|
26
36
|
this.state = {
|
|
@@ -45,11 +55,12 @@ class HideColumnSetter extends React.Component {
|
|
|
45
55
|
wrapperClass
|
|
46
56
|
} = this.props;
|
|
47
57
|
if (!columns) return null;
|
|
58
|
+
const configurableColumns = columns.filter(column => column.type !== CellType.BUTTON);
|
|
48
59
|
const {
|
|
49
60
|
shownColumnKeys
|
|
50
61
|
} = this.state;
|
|
51
62
|
const shown_column_keys = shownColumnKeys || [];
|
|
52
|
-
const hiddenColumns =
|
|
63
|
+
const hiddenColumns = configurableColumns.filter(column => !shown_column_keys.includes(column.key));
|
|
53
64
|
const hiddenColumnsLength = hiddenColumns.length;
|
|
54
65
|
let message = intl.get('hide_columns');
|
|
55
66
|
if (hiddenColumnsLength === 1) {
|
|
@@ -68,7 +79,7 @@ class HideColumnSetter extends React.Component {
|
|
|
68
79
|
className: "dtable-font dtable-icon-hide mr-2",
|
|
69
80
|
id: "dtable-hidden-column-popover"
|
|
70
81
|
}), /*#__PURE__*/React.createElement("span", null, message)), this.state.isShowHideColumnSetter && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HideColumnPopover, {
|
|
71
|
-
columns:
|
|
82
|
+
columns: configurableColumns,
|
|
72
83
|
target: 'dtable-hidden-column-popover',
|
|
73
84
|
shownColumnKeys: shownColumnKeys,
|
|
74
85
|
modifyHiddenColumns: this.modifyHiddenColumns,
|
|
@@ -18,10 +18,11 @@ import _GeolocationFormatter from "dtable-ui-component/lib/GeolocationFormatter"
|
|
|
18
18
|
import _ImageFormatter from "dtable-ui-component/lib/ImageFormatter";
|
|
19
19
|
import _LongTextFormatter from "dtable-ui-component/lib/LongTextFormatter";
|
|
20
20
|
import _CollaboratorFormatter from "dtable-ui-component/lib/CollaboratorFormatter";
|
|
21
|
+
import _PhoneNumberLink from "dtable-ui-component/lib/PhoneNumberLink";
|
|
21
22
|
import _TextFormatter from "dtable-ui-component/lib/TextFormatter";
|
|
22
23
|
import _toaster from "dtable-ui-component/lib/toaster";
|
|
23
24
|
import React, { Fragment } from 'react';
|
|
24
|
-
import { CellType } from 'dtable-utils';
|
|
25
|
+
import { CellType, checkIsDisplayAsPhoneNumberColumn } from 'dtable-utils';
|
|
25
26
|
import intl from '../../../../intl';
|
|
26
27
|
import DtableFormulaFormatter from './formatters/formula-formatter';
|
|
27
28
|
import LinkFormatter from './formatters/link-formatter';
|
|
@@ -64,6 +65,14 @@ class Formatter extends React.Component {
|
|
|
64
65
|
this.onEmailClick = email => {
|
|
65
66
|
window.location.href = `mailto:${getTrimmedString(email)}`;
|
|
66
67
|
};
|
|
68
|
+
this.onUrlKeyDown = (event, url) => {
|
|
69
|
+
if (event.key !== 'Enter') return;
|
|
70
|
+
this.onUrlClick(url);
|
|
71
|
+
};
|
|
72
|
+
this.onEmailKeyDown = (event, email) => {
|
|
73
|
+
if (event.key !== 'Enter') return;
|
|
74
|
+
this.onEmailClick(email);
|
|
75
|
+
};
|
|
67
76
|
this.renderFormatter = () => {
|
|
68
77
|
let {
|
|
69
78
|
column,
|
|
@@ -81,6 +90,17 @@ class Formatter extends React.Component {
|
|
|
81
90
|
case CellType.TEXT:
|
|
82
91
|
{
|
|
83
92
|
if (!cellValue) return this.renderEmptyFormatter();
|
|
93
|
+
if (checkIsDisplayAsPhoneNumberColumn(column) && !!getTrimmedString(cellValue)) {
|
|
94
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
className: "table-element-link-value-wrapper"
|
|
96
|
+
}, /*#__PURE__*/React.createElement(_TextFormatter, {
|
|
97
|
+
value: cellValue,
|
|
98
|
+
containerClassName: "table-element-phone-number-formatter"
|
|
99
|
+
}), /*#__PURE__*/React.createElement(_PhoneNumberLink, {
|
|
100
|
+
phoneNumber: getTrimmedString(cellValue),
|
|
101
|
+
className: "table-element-cell-jump-link"
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
84
104
|
return /*#__PURE__*/React.createElement(_TextFormatter, {
|
|
85
105
|
value: cellValue,
|
|
86
106
|
containerClassName: containerClassName
|
|
@@ -250,21 +270,37 @@ class Formatter extends React.Component {
|
|
|
250
270
|
{
|
|
251
271
|
if (!cellValue) return this.renderEmptyFormatter();
|
|
252
272
|
return /*#__PURE__*/React.createElement("div", {
|
|
253
|
-
|
|
273
|
+
className: "table-element-link-value-wrapper"
|
|
254
274
|
}, /*#__PURE__*/React.createElement(_UrlFormatter, {
|
|
255
275
|
value: cellValue,
|
|
256
276
|
containerClassName: containerClassName
|
|
257
|
-
}), "
|
|
277
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
278
|
+
onClick: () => this.onUrlClick(cellValue),
|
|
279
|
+
onKeyDown: event => this.onUrlKeyDown(event, cellValue),
|
|
280
|
+
tabIndex: 0,
|
|
281
|
+
role: "button",
|
|
282
|
+
className: "table-element-cell-jump-link"
|
|
283
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
284
|
+
className: "dtable-font dtable-icon-url"
|
|
285
|
+
})));
|
|
258
286
|
}
|
|
259
287
|
case CellType.EMAIL:
|
|
260
288
|
{
|
|
261
289
|
if (!cellValue) return this.renderEmptyFormatter();
|
|
262
290
|
return /*#__PURE__*/React.createElement("div", {
|
|
263
|
-
|
|
291
|
+
className: "table-element-link-value-wrapper"
|
|
264
292
|
}, /*#__PURE__*/React.createElement(_EmailFormatter, {
|
|
265
293
|
value: cellValue,
|
|
266
294
|
containerClassName: containerClassName
|
|
267
|
-
}), "
|
|
295
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
296
|
+
onClick: () => this.onEmailClick(cellValue),
|
|
297
|
+
onKeyDown: event => this.onEmailKeyDown(event, cellValue),
|
|
298
|
+
tabIndex: 0,
|
|
299
|
+
role: "button",
|
|
300
|
+
className: "table-element-cell-jump-link"
|
|
301
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
302
|
+
className: "dtable-font dtable-icon-email"
|
|
303
|
+
})));
|
|
268
304
|
}
|
|
269
305
|
case CellType.DURATION:
|
|
270
306
|
{
|
|
@@ -28,7 +28,7 @@ class RecordsHeader extends Component {
|
|
|
28
28
|
return /*#__PURE__*/React.createElement("div", {
|
|
29
29
|
className: "static-table-element-result-content",
|
|
30
30
|
style: {
|
|
31
|
-
color: globalTheme === 'light' ? '#
|
|
31
|
+
color: globalTheme === 'light' ? '#212529' : '#ffffff'
|
|
32
32
|
},
|
|
33
33
|
onMouseEnter: this.onMouseEnter,
|
|
34
34
|
onMouseLeave: this.onMouseLeave
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
width: 100%;
|
|
44
44
|
position: relative;
|
|
45
45
|
z-index: 2;
|
|
46
|
-
color: #
|
|
46
|
+
color: #212529;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
.table-element-header-cell {
|
|
@@ -86,6 +86,13 @@
|
|
|
86
86
|
position: relative;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
.table-element-result-table-cell.table-element-result-table-image-cell,
|
|
90
|
+
.table-element-result-table-cell.table-element-result-table-file-cell,
|
|
91
|
+
.table-element-result-table-cell.table-element-result-table-formula-image-cell {
|
|
92
|
+
padding-top: 2px;
|
|
93
|
+
padding-bottom: 2px;
|
|
94
|
+
}
|
|
95
|
+
|
|
89
96
|
.table-element-result-table-cell:last-child {
|
|
90
97
|
border-right: none;
|
|
91
98
|
}
|
|
@@ -140,6 +147,21 @@
|
|
|
140
147
|
text-align: left !important;
|
|
141
148
|
}
|
|
142
149
|
|
|
150
|
+
.table-element-result-table-cell .dtable-ui.table-element-phone-number-formatter,
|
|
151
|
+
.table-element-result-table-cell .dtable-ui.table-element-url-formatter,
|
|
152
|
+
.table-element-result-table-cell .dtable-ui.table-element-email-formatter {
|
|
153
|
+
width: auto;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.table-element-result-table-cell .table-element-image-formatter,
|
|
157
|
+
.table-element-result-table-cell .table-element-file-formatter {
|
|
158
|
+
height: 28px;
|
|
159
|
+
line-height: 28px;
|
|
160
|
+
display: flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
overflow: visible;
|
|
163
|
+
}
|
|
164
|
+
|
|
143
165
|
.table-element-result-table-cell .multiple-select-formatter,
|
|
144
166
|
.table-element-result-table-cell .single-select-formatter {
|
|
145
167
|
line-height: 1;
|
|
@@ -167,6 +189,7 @@
|
|
|
167
189
|
}
|
|
168
190
|
|
|
169
191
|
.table-element-result-table-cell .table-element-text-formatter,
|
|
192
|
+
.table-element-result-table-cell .table-element-phone-number-formatter,
|
|
170
193
|
.table-element-result-table-cell .table-element-url-formatter,
|
|
171
194
|
.table-element-result-table-cell .table-element-email-formatter,
|
|
172
195
|
.table-element-result-table-cell .table-element-long-text-formatter .long-text-content {
|
|
@@ -175,6 +198,69 @@
|
|
|
175
198
|
white-space: nowrap;
|
|
176
199
|
}
|
|
177
200
|
|
|
201
|
+
.table-element-result-table-cell .table-element-link-value-wrapper {
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
width: 100%;
|
|
205
|
+
min-width: 0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.table-element-result-table-cell .table-element-link-value-wrapper .table-element-phone-number-formatter,
|
|
209
|
+
.table-element-result-table-cell .table-element-link-value-wrapper .table-element-url-formatter,
|
|
210
|
+
.table-element-result-table-cell .table-element-link-value-wrapper .table-element-email-formatter {
|
|
211
|
+
min-width: 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.table-element-result-table-cell .table-element-cell-jump-link {
|
|
215
|
+
display: inline-flex;
|
|
216
|
+
align-items: center;
|
|
217
|
+
justify-content: center;
|
|
218
|
+
height: 20px;
|
|
219
|
+
line-height: 20px;
|
|
220
|
+
margin-left: 8px;
|
|
221
|
+
border: 1px solid #eee;
|
|
222
|
+
padding: 0 2px;
|
|
223
|
+
color: #999;
|
|
224
|
+
border-radius: 2px;
|
|
225
|
+
background: #fff;
|
|
226
|
+
cursor: pointer;
|
|
227
|
+
box-shadow: 0 0 1px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.table-element-result-table-cell .table-element-cell-jump-link:hover {
|
|
231
|
+
background: #f5f5f5;
|
|
232
|
+
border: 1px solid #c9c9c9;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.table-element-result-table-cell .table-element-cell-jump-link .dtable-font,
|
|
236
|
+
.table-element-result-table-cell .table-element-cell-jump-link .jump-link-icon {
|
|
237
|
+
color: #999;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.table-element-result-table-cell .table-element-image-formatter .image-item {
|
|
241
|
+
height: 28px;
|
|
242
|
+
width: auto;
|
|
243
|
+
max-width: 100%;
|
|
244
|
+
object-fit: contain;
|
|
245
|
+
border: 1px solid #f0f0f0;
|
|
246
|
+
box-sizing: border-box;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.table-element-result-table-cell .table-element-image-formatter .image-item:hover {
|
|
250
|
+
border: 1px solid #c9c9c9;
|
|
251
|
+
cursor: pointer;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.table-element-result-table-cell .table-element-file-formatter .file-item-icon {
|
|
255
|
+
border: 1px solid #f0f0f0;
|
|
256
|
+
box-sizing: border-box;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.table-element-result-table-cell .table-element-file-formatter .file-item-icon:hover {
|
|
260
|
+
border: 1px solid #c9c9c9;
|
|
261
|
+
cursor: pointer;
|
|
262
|
+
}
|
|
263
|
+
|
|
178
264
|
.table-element-result-table-cell .dtable-ui.long-text-formatter {
|
|
179
265
|
height: 100%;
|
|
180
266
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sea-chart",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.125",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@antv/data-set": "0.11.8",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
11
11
|
"@dnd-kit/sortable": "^10.0.0",
|
|
12
12
|
"@dnd-kit/utilities": "^3.2.2",
|
|
13
|
-
"@seafile/seafile-calendar": "^
|
|
13
|
+
"@seafile/seafile-calendar": "^1.0.8",
|
|
14
14
|
"@seafile/seafile-editor": "^2.0.12",
|
|
15
15
|
"axios": "~1.13.*",
|
|
16
16
|
"classnames": "^2.3.2",
|