dtable-ui-component 4.4.34 → 4.4.35
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/lib/FormulaFormatter/index.css +24 -0
- package/lib/FormulaFormatter/utils.js +16 -1
- package/lib/RowExpandFormulaFormatter/index.js +48 -2
- package/lib/locals/de.js +2 -1
- package/lib/locals/en.js +2 -1
- package/lib/locals/es.js +2 -1
- package/lib/locals/fr.js +2 -1
- package/lib/locals/pt.js +2 -1
- package/lib/locals/ru.js +2 -1
- package/lib/locals/zh-CN.js +2 -1
- package/package.json +1 -1
|
@@ -10,6 +10,30 @@
|
|
|
10
10
|
margin-bottom: 5px;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
.dtable-ui.dtable-row-expand-formatter .formula-url-formatter-column .formula-url-link,
|
|
14
|
+
.dtable-ui.dtable-row-expand-formatter .formula-url-formatter-column .formula-email-link {
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
font-size: 14px;
|
|
18
|
+
height: 22px;
|
|
19
|
+
position: absolute;
|
|
20
|
+
top: 8px;
|
|
21
|
+
right: 9px;
|
|
22
|
+
border: 1px solid #eee;
|
|
23
|
+
padding: 0 4px;
|
|
24
|
+
color: #999;
|
|
25
|
+
border-radius: 2px;
|
|
26
|
+
background: #fff;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
box-shadow: 0 0 1px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.dtable-ui.dtable-row-expand-formatter .formula-url-formatter-column .formula-email-link:hover,
|
|
32
|
+
.dtable-ui.dtable-row-expand-formatter .formula-url-formatter-column .formula-url-link:hover {
|
|
33
|
+
background: #f5f5f5;
|
|
34
|
+
border: 1px solid #c9c9c9;
|
|
35
|
+
}
|
|
36
|
+
|
|
13
37
|
.dtable-ui.formula-formatter.multiple .formula-formatter-content-item.simple-cell-formatter {
|
|
14
38
|
height: 20px;
|
|
15
39
|
padding: 0 8px;
|
|
@@ -8,7 +8,7 @@ exports.getTwoDimensionArrayValue = exports.getFormulaArrayValue = exports.conve
|
|
|
8
8
|
exports.isArrayFormatColumn = isArrayFormatColumn;
|
|
9
9
|
exports.isFunction = void 0;
|
|
10
10
|
exports.isSimpleCellFormatter = isSimpleCellFormatter;
|
|
11
|
-
exports.isValidCellValue = void 0;
|
|
11
|
+
exports.openUrlLink = exports.isValidUrl = exports.isValidCellValue = void 0;
|
|
12
12
|
var _constants = require("../constants");
|
|
13
13
|
var _normalizeLongTextValue = _interopRequireDefault(require("../SimpleLongTextFormatter/normalize-long-text-value"));
|
|
14
14
|
function isSimpleCellFormatter(type) {
|
|
@@ -31,6 +31,21 @@ const isValidCellValue = value => {
|
|
|
31
31
|
return true;
|
|
32
32
|
};
|
|
33
33
|
exports.isValidCellValue = isValidCellValue;
|
|
34
|
+
const isValidUrl = url => {
|
|
35
|
+
const reg = /^(([-a-zA-Z0-9+.]+):\/\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/;
|
|
36
|
+
return reg.test(url);
|
|
37
|
+
};
|
|
38
|
+
exports.isValidUrl = isValidUrl;
|
|
39
|
+
const openUrlLink = url => {
|
|
40
|
+
let a = document.createElement('a');
|
|
41
|
+
document.body.appendChild(a);
|
|
42
|
+
a.href = url;
|
|
43
|
+
a.target = '_blank';
|
|
44
|
+
a.rel = 'noopener noreferrer';
|
|
45
|
+
a.click();
|
|
46
|
+
document.body.removeChild(a);
|
|
47
|
+
};
|
|
48
|
+
exports.openUrlLink = openUrlLink;
|
|
34
49
|
const getFormulaArrayValue = function (value) {
|
|
35
50
|
let isFlat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
36
51
|
if (!Array.isArray(value)) {
|
|
@@ -6,15 +6,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
10
|
var _dtableUtils = require("dtable-utils");
|
|
10
11
|
var _baseFormatterConfig = _interopRequireDefault(require("../formatterConfig/base-formatter-config"));
|
|
11
12
|
var _TextFormatter = _interopRequireDefault(require("../TextFormatter"));
|
|
12
13
|
var _utils = require("../FormulaFormatter/utils");
|
|
13
14
|
var _cellValueValidator = _interopRequireDefault(require("../FormulaFormatter/cell-value-validator"));
|
|
15
|
+
var _toaster = _interopRequireDefault(require("../toaster"));
|
|
16
|
+
var _lang = require("../lang");
|
|
14
17
|
require("../FormulaFormatter/index.css");
|
|
15
18
|
class RowExpandFormulaFormatter extends _react.default.Component {
|
|
16
19
|
constructor() {
|
|
17
20
|
super(...arguments);
|
|
21
|
+
this.onOpenUrlLink = url => {
|
|
22
|
+
if (!(0, _utils.isValidUrl)(url)) {
|
|
23
|
+
url = "http://".concat(url);
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
(0, _utils.openUrlLink)(url);
|
|
27
|
+
} catch {
|
|
28
|
+
_toaster.default.danger((0, _lang.getLocale)('URL_is_invalid'));
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
this.onOpenEmailLink = email => {
|
|
32
|
+
window.location.href = "mailto:".concat(email.trim());
|
|
33
|
+
};
|
|
18
34
|
this.renderBorder = dom => {
|
|
19
35
|
const {
|
|
20
36
|
column
|
|
@@ -30,6 +46,13 @@ class RowExpandFormulaFormatter extends _react.default.Component {
|
|
|
30
46
|
width: '320px'
|
|
31
47
|
};
|
|
32
48
|
}
|
|
49
|
+
const columnType = (0, _dtableUtils.getColumnType)(column);
|
|
50
|
+
if ([_dtableUtils.CellType.URL, _dtableUtils.CellType.EMAIL].includes(columnType)) {
|
|
51
|
+
style = {
|
|
52
|
+
...style,
|
|
53
|
+
position: 'relative'
|
|
54
|
+
};
|
|
55
|
+
}
|
|
33
56
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
34
57
|
className: "d-flex align-items-center form-control disabled h-auto",
|
|
35
58
|
style: style
|
|
@@ -54,18 +77,41 @@ class RowExpandFormulaFormatter extends _react.default.Component {
|
|
|
54
77
|
formatterProps.value = value;
|
|
55
78
|
return this.renderBorder(this.createColumnFormatter(Formatter, formatterProps));
|
|
56
79
|
}
|
|
80
|
+
const columnType = (0, _dtableUtils.getColumnType)(column);
|
|
57
81
|
let cellValue = value;
|
|
58
82
|
if (!Array.isArray(value)) {
|
|
59
83
|
cellValue = (0, _cellValueValidator.default)(value, array_type) ? [value] : [];
|
|
60
84
|
}
|
|
85
|
+
let formulaUrl = '';
|
|
86
|
+
if (columnType === _dtableUtils.CellType.URL) {
|
|
87
|
+
formulaUrl = cellValue[0];
|
|
88
|
+
formulaUrl = formulaUrl ? formulaUrl.trim() : '';
|
|
89
|
+
}
|
|
90
|
+
let formulaEmail = '';
|
|
91
|
+
if (columnType === _dtableUtils.CellType.EMAIL) {
|
|
92
|
+
formulaEmail = cellValue[0];
|
|
93
|
+
formulaEmail = formulaEmail ? formulaEmail.trim() : '';
|
|
94
|
+
}
|
|
61
95
|
return this.renderBorder( /*#__PURE__*/_react.default.createElement("div", {
|
|
62
96
|
className: "dtable-ui formula-formatter multiple"
|
|
63
97
|
}, cellValue.map((v, index) => {
|
|
64
98
|
formatterProps.value = v;
|
|
65
99
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
66
|
-
className:
|
|
100
|
+
className: (0, _classnames.default)('formula-formatter-content-item', {
|
|
101
|
+
'simple-cell-formatter': (0, _utils.isSimpleCellFormatter)(array_type)
|
|
102
|
+
}, {
|
|
103
|
+
'formula-url-formatter-column': formulaUrl || formulaEmail
|
|
104
|
+
}),
|
|
67
105
|
key: "formula-formatter-content-item-".concat(index)
|
|
68
|
-
},
|
|
106
|
+
}, formulaUrl && /*#__PURE__*/_react.default.createElement("span", {
|
|
107
|
+
"aria-hidden": "true",
|
|
108
|
+
className: "dtable-font dtable-icon-url formula-url-link",
|
|
109
|
+
onClick: this.onOpenUrlLink.bind(this, formulaUrl)
|
|
110
|
+
}), formulaEmail && /*#__PURE__*/_react.default.createElement("span", {
|
|
111
|
+
"aria-hidden": "true",
|
|
112
|
+
className: "dtable-font dtable-icon-email formula-email-link",
|
|
113
|
+
onClick: this.onOpenEmailLink.bind(this, formulaEmail)
|
|
114
|
+
}), this.createColumnFormatter(Formatter, formatterProps));
|
|
69
115
|
})));
|
|
70
116
|
};
|
|
71
117
|
this.getFormatterProps = (array_type, array_data, collaborators) => {
|
package/lib/locals/de.js
CHANGED
|
@@ -93,6 +93,7 @@ const de = {
|
|
|
93
93
|
"this_year": "Dieses Jahr",
|
|
94
94
|
"last_week": "letzte Woche",
|
|
95
95
|
"last_month": "letzten Monat",
|
|
96
|
-
"last_year": "letztes Jahr"
|
|
96
|
+
"last_year": "letztes Jahr",
|
|
97
|
+
"URL_is_invalid": "Die URL ist ungültig."
|
|
97
98
|
};
|
|
98
99
|
var _default = exports.default = de;
|
package/lib/locals/en.js
CHANGED
package/lib/locals/es.js
CHANGED
package/lib/locals/fr.js
CHANGED
|
@@ -93,6 +93,7 @@ const fr = {
|
|
|
93
93
|
"this_year": "cette année",
|
|
94
94
|
"last_week": "la semaine dernière",
|
|
95
95
|
"last_month": "le mois dernier",
|
|
96
|
-
"last_year": "l'année dernière"
|
|
96
|
+
"last_year": "l'année dernière",
|
|
97
|
+
"URL_is_invalid": "L'URL est invalide."
|
|
97
98
|
};
|
|
98
99
|
var _default = exports.default = fr;
|
package/lib/locals/pt.js
CHANGED
package/lib/locals/ru.js
CHANGED
package/lib/locals/zh-CN.js
CHANGED