dtable-ui-component 4.4.4 → 4.4.6
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/AutoNumberFormatter/index.js +14 -7
- package/lib/ButtonFormatter/index.js +16 -9
- package/lib/CTimeFormatter/index.js +16 -9
- package/lib/CheckboxEditor/index.js +15 -8
- package/lib/CheckboxFormatter/index.js +15 -8
- package/lib/CollaboratorEditor/index.js +29 -21
- package/lib/CollaboratorEditor/mb-collaborator-editor-popover/index.js +32 -25
- package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +25 -18
- package/lib/CollaboratorFormatter/index.js +19 -12
- package/lib/CollaboratorItem/index.js +17 -10
- package/lib/CreatorFormatter/index.js +19 -12
- package/lib/DTableCommonAddTool/index.js +13 -6
- package/lib/DTableCustomizeCollaboratorSelect/index.js +26 -18
- package/lib/DTableCustomizeSelect/index.js +23 -15
- package/lib/DTableFiltersPopover/constants/index.js +38 -33
- package/lib/DTableFiltersPopover/index.js +38 -31
- package/lib/DTableFiltersPopover/utils/filter-item-utils.js +53 -46
- package/lib/DTableFiltersPopover/utils/index.js +128 -99
- package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.js +34 -26
- package/lib/DTableFiltersPopover/widgets/department-select-filter/department-multiple-select-filter.js +33 -25
- package/lib/DTableFiltersPopover/widgets/department-select-filter/department-single-select-filter.js +34 -26
- package/lib/DTableFiltersPopover/widgets/filter-calendar.js +34 -26
- package/lib/DTableFiltersPopover/widgets/filter-item.js +128 -120
- package/lib/DTableFiltersPopover/widgets/filter-list/index.js +26 -18
- package/lib/DTableFiltersPopover/widgets/rate-item.js +15 -8
- package/lib/DTablePopover/index.js +15 -8
- package/lib/DTablePopover/utils.js +9 -2
- package/lib/DTableRadio/index.js +17 -10
- package/lib/DTableSearchInput/index.js +21 -13
- package/lib/DTableSearchInput/utils.js +9 -2
- package/lib/DTableSelect/dtable-select-label.js +13 -6
- package/lib/DTableSelect/index.js +18 -10
- package/lib/DTableSelect/utils.js +20 -10
- package/lib/DTableSwitch/index.js +14 -7
- package/lib/DateEditor/index.js +30 -22
- package/lib/DateEditor/mb-date-editor-popover/index.js +55 -47
- package/lib/DateEditor/pc-date-editor-popover.js +27 -20
- package/lib/DateFormatter/index.js +16 -9
- package/lib/Department-editor/constants.js +7 -1
- package/lib/Department-editor/department-multiple-select/index.js +32 -24
- package/lib/Department-editor/department-single-select.js +41 -33
- package/lib/Department-editor/index.js +22 -14
- package/lib/Department-editor/selected-departments/index.js +32 -25
- package/lib/Department-editor/utils.js +11 -3
- package/lib/DepartmentSingleSelectFormatter/index.js +16 -9
- package/lib/DigitalSignFormatter/index.js +23 -15
- package/lib/DigitalSignFormatter/utils.js +11 -3
- package/lib/DurationFormatter/index.js +16 -9
- package/lib/EditEditorButton/index.js +12 -5
- package/lib/EmailFormatter/index.js +14 -7
- package/lib/FieldDisplaySetting/field-item.js +21 -14
- package/lib/FieldDisplaySetting/index.js +27 -19
- package/lib/FileEditor/index.js +15 -8
- package/lib/FileEditor/pc-files-addition/index.js +1 -0
- package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +1 -0
- package/lib/FileEditor/pc-files-preview/index.js +1 -0
- package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +1 -0
- package/lib/FileFormatter/index.js +19 -11
- package/lib/FileItemFormatter/index.js +14 -6
- package/lib/FileItemFormatter/utils.js +9 -2
- package/lib/FileUploader/index.js +11 -4
- package/lib/FormulaFormatter/cell-value-validator.js +24 -18
- package/lib/FormulaFormatter/index.js +39 -32
- package/lib/FormulaFormatter/utils.js +29 -13
- package/lib/GeolocationFormatter/index.js +16 -9
- package/lib/HtmlLongTextFormatter/index.js +17 -9
- package/lib/ImageFormatter/images-lazy-load.js +16 -9
- package/lib/ImageFormatter/index.js +24 -16
- package/lib/ImageFormatter/utils.js +9 -2
- package/lib/ImagePreviewerLightbox/index.js +19 -12
- package/lib/ImagePreviewerLightbox/utils.js +11 -3
- package/lib/LastModifierFormatter/index.js +19 -12
- package/lib/LinkEditor/index.js +33 -25
- package/lib/LinkEditor/link-editor-option.js +15 -8
- package/lib/LinkEditor/mb-link-editor-popover/index.js +30 -23
- package/lib/LinkEditor/pc-link-editor-popover/index.js +24 -17
- package/lib/LinkFormatter/index.js +20 -13
- package/lib/Loading/index.js +11 -4
- package/lib/LongTextFormatter/index.js +13 -6
- package/lib/MBEditorHeader/index.js +14 -7
- package/lib/MTimeFormatter/index.js +16 -9
- package/lib/ModalPortal/index.js +12 -5
- package/lib/MultipleSelectEditor/index.js +25 -17
- package/lib/MultipleSelectFormatter/index.js +17 -10
- package/lib/NotificationPopover/index.js +24 -16
- package/lib/NumberEditor/index.js +25 -18
- package/lib/NumberFormatter/index.js +16 -9
- package/lib/RateFormatter/index.js +15 -8
- package/lib/RoleStatusEditor/index.js +22 -14
- package/lib/RowExpandEmailFormatter/index.js +17 -10
- package/lib/RowExpandFileFormatter/index.js +16 -8
- package/lib/RowExpandFileFormatter/row-expand-file-item-formatter.js +27 -18
- package/lib/RowExpandFormatter/index.js +86 -78
- package/lib/RowExpandFormulaFormatter/index.js +42 -34
- package/lib/RowExpandImageFormatter/index.js +19 -10
- package/lib/RowExpandImageFormatter/row-expand-image-item-formatter.js +27 -18
- package/lib/RowExpandImageFormatter/utils.js +9 -2
- package/lib/RowExpandLinkFormatter/collaborator-item-formatter.js +16 -7
- package/lib/RowExpandLinkFormatter/index.js +46 -37
- package/lib/RowExpandLinkFormatter/utils.js +17 -6
- package/lib/RowExpandLinkFormatter/value-display-utils.js +12 -5
- package/lib/RowExpandRateFormatter/index.js +15 -8
- package/lib/RowExpandUrlFormatter/index.js +21 -14
- package/lib/SelectItem/index.js +12 -4
- package/lib/SelectOptionGroup/KeyCodes.js +7 -1
- package/lib/SelectOptionGroup/index.js +28 -20
- package/lib/SelectOptionGroup/option.js +11 -4
- package/lib/SimpleLongTextFormatter/index.js +27 -20
- package/lib/SimpleLongTextFormatter/normalize-long-text-value.js +7 -1
- package/lib/SimpleLongTextFormatter/widgets/LongTextPreview.js +15 -8
- package/lib/SimpleLongTextFormatter/widgets/dtable-markdown-viewer.js +14 -7
- package/lib/SingleSelectEditor/index.js +26 -18
- package/lib/SingleSelectFormatter/index.js +16 -9
- package/lib/TextEditor/index.js +14 -7
- package/lib/TextFormatter/index.js +14 -7
- package/lib/UrlFormatter/index.js +14 -7
- package/lib/cellFormatterFactory/index.js +11 -4
- package/lib/common/ClickOutside.js +12 -4
- package/lib/common/delete-tip.js +20 -12
- package/lib/common/modal-portal.js +13 -5
- package/lib/constants/index.js +28 -9
- package/lib/css/mb-cell-editor.css +1 -1
- package/lib/data/dtable-value.js +11 -6
- package/lib/formatterConfig/base-formatter-config.js +53 -46
- package/lib/formatterConfig/index.js +16 -9
- package/lib/hooks/common-hooks.js +11 -4
- package/lib/index.js +432 -75
- package/lib/lang/index.js +24 -13
- package/lib/locals/de.js +7 -1
- package/lib/locals/en.js +7 -1
- package/lib/locals/fr.js +7 -1
- package/lib/locals/zh-CN.js +7 -1
- package/lib/select-editor/index.js +27 -4
- package/lib/select-editor/mb-select-editor-popover/index.js +41 -33
- package/lib/select-editor/pc-select-editor-popover/index.js +26 -19
- package/lib/select-editor/select-editor-option.js +15 -8
- package/lib/toaster/alert.js +18 -11
- package/lib/toaster/index.js +10 -3
- package/lib/toaster/toast.js +16 -8
- package/lib/toaster/toastManager.js +13 -5
- package/lib/toaster/toaster.js +15 -7
- package/lib/utils/dayjs.js +11 -4
- package/lib/utils/editor-utils.js +15 -5
- package/lib/utils/event-bus.js +7 -1
- package/lib/utils/utils.js +17 -6
- package/package.json +80 -68
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _toaster = _interopRequireDefault(require("../toaster"));
|
|
11
|
+
var _editorUtils = require("../utils/editor-utils");
|
|
12
|
+
require("./index.css");
|
|
13
|
+
class UrlFormatter extends _react.default.Component {
|
|
7
14
|
constructor() {
|
|
8
15
|
super(...arguments);
|
|
9
16
|
this.onOpenUrlLink = () => {
|
|
10
17
|
const {
|
|
11
18
|
value
|
|
12
19
|
} = this.props;
|
|
13
|
-
const url = getTrimmedString(value);
|
|
14
|
-
const validUrl = isValidUrl(url) ? url : "http://".concat(url);
|
|
20
|
+
const url = (0, _editorUtils.getTrimmedString)(value);
|
|
21
|
+
const validUrl = (0, _editorUtils.isValidUrl)(url) ? url : "http://".concat(url);
|
|
15
22
|
try {
|
|
16
23
|
let a = document.createElement('a');
|
|
17
24
|
document.body.appendChild(a);
|
|
@@ -21,7 +28,7 @@ class UrlFormatter extends React.Component {
|
|
|
21
28
|
a.click();
|
|
22
29
|
document.body.removeChild(a);
|
|
23
30
|
} catch {
|
|
24
|
-
|
|
31
|
+
_toaster.default.danger('The url is invalid');
|
|
25
32
|
}
|
|
26
33
|
};
|
|
27
34
|
}
|
|
@@ -30,15 +37,15 @@ class UrlFormatter extends React.Component {
|
|
|
30
37
|
containerClassName,
|
|
31
38
|
value
|
|
32
39
|
} = this.props;
|
|
33
|
-
let classname =
|
|
34
|
-
return /*#__PURE__*/
|
|
40
|
+
let classname = (0, _classnames.default)('dtable-ui cell-formatter-container url-formatter', containerClassName);
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
35
42
|
className: classname
|
|
36
|
-
}, /*#__PURE__*/
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
37
44
|
className: "url-formatter-value text-truncate"
|
|
38
|
-
}, value), getTrimmedString(value) && /*#__PURE__*/
|
|
45
|
+
}, value), (0, _editorUtils.getTrimmedString)(value) && /*#__PURE__*/_react.default.createElement("span", {
|
|
39
46
|
className: "dtable-font dtable-icon-url row-expand-jump-link",
|
|
40
47
|
onClick: this.onOpenUrlLink
|
|
41
48
|
}));
|
|
42
49
|
}
|
|
43
50
|
}
|
|
44
|
-
|
|
51
|
+
var _default = exports.default = UrlFormatter;
|
package/lib/SelectItem/index.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
class SelectItem extends _react.default.PureComponent {
|
|
3
10
|
constructor() {
|
|
4
11
|
super(...arguments);
|
|
5
12
|
this.getStyle = (option, fontSize) => {
|
|
@@ -24,10 +31,11 @@ export default class SelectItem extends React.PureComponent {
|
|
|
24
31
|
fontSize
|
|
25
32
|
} = this.props;
|
|
26
33
|
const style = this.getStyle(option, fontSize);
|
|
27
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
28
35
|
className: "dtable-ui select-item text-truncate",
|
|
29
36
|
style: style,
|
|
30
37
|
title: option.name
|
|
31
38
|
}, option.name);
|
|
32
39
|
}
|
|
33
|
-
}
|
|
40
|
+
}
|
|
41
|
+
exports.default = SelectItem;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _option = _interopRequireDefault(require("./option"));
|
|
11
|
+
var _DTableSearchInput = _interopRequireDefault(require("../DTableSearchInput"));
|
|
12
|
+
var _KeyCodes = _interopRequireDefault(require("./KeyCodes"));
|
|
13
|
+
var _ClickOutside = _interopRequireDefault(require("../common/ClickOutside"));
|
|
14
|
+
require("./index.css");
|
|
7
15
|
const OPTION_HEIGHT = 32;
|
|
8
|
-
class SelectOptionGroup extends Component {
|
|
16
|
+
class SelectOptionGroup extends _react.Component {
|
|
9
17
|
constructor(props) {
|
|
10
18
|
super(props);
|
|
11
19
|
this.resetMenuStyle = () => {
|
|
@@ -31,11 +39,11 @@ class SelectOptionGroup extends Component {
|
|
|
31
39
|
};
|
|
32
40
|
this.onHotKey = event => {
|
|
33
41
|
const keyCode = event.keyCode;
|
|
34
|
-
if (keyCode ===
|
|
42
|
+
if (keyCode === _KeyCodes.default.UpArrow) {
|
|
35
43
|
this.onPressUp();
|
|
36
|
-
} else if (keyCode ===
|
|
44
|
+
} else if (keyCode === _KeyCodes.default.DownArrow) {
|
|
37
45
|
this.onPressDown();
|
|
38
|
-
} else if (keyCode ===
|
|
46
|
+
} else if (keyCode === _KeyCodes.default.Enter) {
|
|
39
47
|
let option = this.filterOptions && this.filterOptions[this.state.activeIndex];
|
|
40
48
|
if (option) {
|
|
41
49
|
this.props.onSelectOption(option.value);
|
|
@@ -43,7 +51,7 @@ class SelectOptionGroup extends Component {
|
|
|
43
51
|
this.props.closeSelect();
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
|
-
} else if (keyCode ===
|
|
54
|
+
} else if (keyCode === _KeyCodes.default.Tab || keyCode === _KeyCodes.default.Escape) {
|
|
47
55
|
this.props.closeSelect();
|
|
48
56
|
}
|
|
49
57
|
};
|
|
@@ -119,14 +127,14 @@ class SelectOptionGroup extends Component {
|
|
|
119
127
|
} = this.props;
|
|
120
128
|
this.filterOptions = this.props.getFilterOptions(searchVal);
|
|
121
129
|
if (this.filterOptions.length === 0) {
|
|
122
|
-
return /*#__PURE__*/
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
123
131
|
className: "none-search-result"
|
|
124
132
|
}, noOptionsPlaceholder);
|
|
125
133
|
}
|
|
126
134
|
return this.filterOptions.map((opt, i) => {
|
|
127
135
|
let key = opt.value.column ? opt.value.column.key : i;
|
|
128
136
|
let isActive = this.state.activeIndex === i;
|
|
129
|
-
return /*#__PURE__*/
|
|
137
|
+
return /*#__PURE__*/_react.default.createElement(_option.default, {
|
|
130
138
|
key: key,
|
|
131
139
|
index: i,
|
|
132
140
|
isActive: isActive,
|
|
@@ -193,27 +201,27 @@ class SelectOptionGroup extends Component {
|
|
|
193
201
|
opacity: 0
|
|
194
202
|
};
|
|
195
203
|
}
|
|
196
|
-
return /*#__PURE__*/
|
|
204
|
+
return /*#__PURE__*/_react.default.createElement(_ClickOutside.default, {
|
|
197
205
|
onClickOutside: this.props.onClickOutside
|
|
198
|
-
}, /*#__PURE__*/
|
|
206
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
199
207
|
className: "option-group ".concat(isShowSelected ? 'pt-0' : '', " ").concat(className ? 'option-group-' + className : ''),
|
|
200
208
|
ref: ref => this.optionGroupRef = ref,
|
|
201
209
|
style: style,
|
|
202
210
|
onMouseDown: this.onMouseDown
|
|
203
|
-
}, isShowSelected && /*#__PURE__*/
|
|
211
|
+
}, isShowSelected && /*#__PURE__*/_react.default.createElement("div", {
|
|
204
212
|
className: "editor-list-delete mb-2",
|
|
205
213
|
onClick: e => e.stopPropagation()
|
|
206
|
-
}, value.label || ''), searchable && /*#__PURE__*/
|
|
214
|
+
}, value.label || ''), searchable && /*#__PURE__*/_react.default.createElement("div", {
|
|
207
215
|
className: "option-group-search"
|
|
208
|
-
}, /*#__PURE__*/
|
|
216
|
+
}, /*#__PURE__*/_react.default.createElement(_DTableSearchInput.default, {
|
|
209
217
|
className: "option-search-control",
|
|
210
218
|
placeholder: searchPlaceholder,
|
|
211
219
|
onChange: this.onChangeSearch,
|
|
212
220
|
autoFocus: true
|
|
213
|
-
})), /*#__PURE__*/
|
|
221
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
214
222
|
className: "option-group-content",
|
|
215
223
|
ref: ref => this.optionGroupContentRef = ref
|
|
216
224
|
}, this.renderOptGroup(searchVal))));
|
|
217
225
|
}
|
|
218
226
|
}
|
|
219
|
-
|
|
227
|
+
var _default = exports.default = SelectOptionGroup;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
class Option extends _react.Component {
|
|
3
10
|
constructor() {
|
|
4
11
|
super(...arguments);
|
|
5
12
|
this.onSelectOption = (value, event) => {
|
|
@@ -20,7 +27,7 @@ class Option extends Component {
|
|
|
20
27
|
};
|
|
21
28
|
}
|
|
22
29
|
render() {
|
|
23
|
-
return /*#__PURE__*/
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
24
31
|
className: this.props.isActive ? 'option option-active' : 'option',
|
|
25
32
|
onClick: this.onSelectOption.bind(this, this.props.value),
|
|
26
33
|
onMouseEnter: this.onMouseEnter,
|
|
@@ -28,4 +35,4 @@ class Option extends Component {
|
|
|
28
35
|
}, this.props.children);
|
|
29
36
|
}
|
|
30
37
|
}
|
|
31
|
-
|
|
38
|
+
var _default = exports.default = Option;
|
|
@@ -1,44 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _normalizeLongTextValue = _interopRequireDefault(require("./normalize-long-text-value"));
|
|
11
|
+
var _LongTextPreview = _interopRequireDefault(require("./widgets/LongTextPreview"));
|
|
12
|
+
var _ModalPortal = _interopRequireDefault(require("../ModalPortal"));
|
|
13
|
+
require("./index.css");
|
|
14
|
+
class SimpleLongTextFormatter extends _react.default.Component {
|
|
8
15
|
constructor(props) {
|
|
9
16
|
super(props);
|
|
10
17
|
this.renderLinks = value => {
|
|
11
18
|
const links = value.links;
|
|
12
19
|
if (!Array.isArray(links) || links.length === 0) return null;
|
|
13
|
-
return /*#__PURE__*/
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
14
21
|
className: "long-text-links"
|
|
15
|
-
}, /*#__PURE__*/
|
|
22
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
16
23
|
className: "dtable-font dtable-icon-url"
|
|
17
24
|
}), links.length);
|
|
18
25
|
};
|
|
19
26
|
this.renderCheckList = value => {
|
|
20
27
|
const checkList = value.checklist;
|
|
21
28
|
if (!checkList || checkList.total === 0) return null;
|
|
22
|
-
return /*#__PURE__*/
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
23
30
|
className: "long-text-check-list"
|
|
24
|
-
}, /*#__PURE__*/
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
25
32
|
className: "dtable-font dtable-icon-check-square-solid ".concat(checkList.completed === checkList.total ? 'long-text-check-list-completed' : '')
|
|
26
33
|
}), "".concat(checkList.completed, "/").concat(checkList.total));
|
|
27
34
|
};
|
|
28
35
|
this.renderImages = value => {
|
|
29
36
|
const images = value.images;
|
|
30
37
|
if (!Array.isArray(images) || images.length === 0) return null;
|
|
31
|
-
return /*#__PURE__*/
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
32
39
|
className: "long-text-images"
|
|
33
|
-
}, /*#__PURE__*/
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
34
41
|
src: images[0],
|
|
35
42
|
alt: ""
|
|
36
|
-
}), /*#__PURE__*/
|
|
43
|
+
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
37
44
|
className: "image-number"
|
|
38
45
|
}, images.length > 1 ? '+' + images.length : null));
|
|
39
46
|
};
|
|
40
47
|
this.renderContent = value => {
|
|
41
|
-
return /*#__PURE__*/
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
42
49
|
className: "long-text-content"
|
|
43
50
|
}, value.preview);
|
|
44
51
|
};
|
|
@@ -49,7 +56,7 @@ class SimpleLongTextFormatter extends React.Component {
|
|
|
49
56
|
if (!value) return {};
|
|
50
57
|
const valueType = Object.prototype.toString.call(value);
|
|
51
58
|
if (valueType === '[object String]') {
|
|
52
|
-
return
|
|
59
|
+
return (0, _normalizeLongTextValue.default)(value);
|
|
53
60
|
}
|
|
54
61
|
if (valueType === '[object Object]') {
|
|
55
62
|
return value;
|
|
@@ -101,14 +108,14 @@ class SimpleLongTextFormatter extends React.Component {
|
|
|
101
108
|
const {
|
|
102
109
|
containerClassName
|
|
103
110
|
} = this.props;
|
|
104
|
-
const className =
|
|
111
|
+
const className = (0, _classnames.default)('dtable-ui cell-formatter-container long-text-formatter', containerClassName);
|
|
105
112
|
const value = this.translateValue();
|
|
106
|
-
return /*#__PURE__*/
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
107
114
|
className: className,
|
|
108
115
|
onMouseEnter: this.onMouseEnter,
|
|
109
116
|
onMouseLeave: this.onMouseLeave,
|
|
110
117
|
ref: ref => this.ref = ref
|
|
111
|
-
}, this.renderLinks(value), this.renderCheckList(value), this.renderImages(value), this.renderContent(value), isPreview && /*#__PURE__*/
|
|
118
|
+
}, this.renderLinks(value), this.renderCheckList(value), this.renderImages(value), this.renderContent(value), isPreview && /*#__PURE__*/_react.default.createElement(_ModalPortal.default, null, /*#__PURE__*/_react.default.createElement(_LongTextPreview.default, {
|
|
112
119
|
value: value,
|
|
113
120
|
formatterStyle: this.formatterStyle
|
|
114
121
|
})));
|
|
@@ -122,4 +129,4 @@ SimpleLongTextFormatter.defaultProps = {
|
|
|
122
129
|
preview: ''
|
|
123
130
|
}
|
|
124
131
|
};
|
|
125
|
-
|
|
132
|
+
var _default = exports.default = SimpleLongTextFormatter;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
1
7
|
const hrefReg = /\[.+\]\(\S+\)|<img( width=[\\|/]?"(\d)+[\\|/|]?")? src="(\S+)" .?\/>|!\[\]\(\S+\)|!\[\]\((\S+)\)|<\S+>/g;
|
|
2
8
|
const imageReg1 = /^<img( width=[\\|/]?"(\d)+[\\|/|]?")? src="(\S+)" .?\/>/;
|
|
3
9
|
const imageReg2 = /^!\[\]\((\S+)\)/;
|
|
@@ -57,4 +63,4 @@ const getPreviewContent = markdownContent => {
|
|
|
57
63
|
text: markdownContent
|
|
58
64
|
};
|
|
59
65
|
};
|
|
60
|
-
|
|
66
|
+
var _default = exports.default = getPreviewContent;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _dtableMarkdownViewer = _interopRequireDefault(require("./dtable-markdown-viewer"));
|
|
10
|
+
require("./longTextEditor.css");
|
|
11
|
+
class LongTextPreview extends _react.default.PureComponent {
|
|
5
12
|
constructor(props) {
|
|
6
13
|
super(props);
|
|
7
14
|
this.getStyle = () => {
|
|
@@ -43,16 +50,16 @@ class LongTextPreview extends React.PureComponent {
|
|
|
43
50
|
}
|
|
44
51
|
render() {
|
|
45
52
|
let markdownContent = this.props.value ? this.props.value.text : '';
|
|
46
|
-
return /*#__PURE__*/
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
47
54
|
className: "longtext-modal-dialog longtext-preview",
|
|
48
55
|
style: this.getStyle(),
|
|
49
56
|
ref: ref => this.ref = ref
|
|
50
|
-
}, /*#__PURE__*/
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
51
58
|
className: "longtext-container longtext-container-scroll"
|
|
52
|
-
}, /*#__PURE__*/
|
|
59
|
+
}, /*#__PURE__*/_react.default.createElement(_dtableMarkdownViewer.default, {
|
|
53
60
|
markdownContent: markdownContent,
|
|
54
61
|
showTOC: false
|
|
55
62
|
})));
|
|
56
63
|
}
|
|
57
64
|
}
|
|
58
|
-
|
|
65
|
+
var _default = exports.default = LongTextPreview;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _seafileEditor = require("@seafile/seafile-editor");
|
|
3
10
|
// Windows old Wechat (3.0 or earlier) inner core is chrome 53 and don't support ECMA6, can't use seafile-editor markdownViewer
|
|
4
11
|
// Windows new Wechat (lastest version 3.3.5) support seafile-editor markdownViewer
|
|
5
12
|
// so use dangerouslySetInnerHTML to preview
|
|
6
|
-
class DtableMarkdownViewer extends
|
|
13
|
+
class DtableMarkdownViewer extends _react.default.PureComponent {
|
|
7
14
|
constructor(props) {
|
|
8
15
|
super(props);
|
|
9
16
|
this.checkBrowser = () => {
|
|
@@ -21,7 +28,7 @@ class DtableMarkdownViewer extends React.PureComponent {
|
|
|
21
28
|
}
|
|
22
29
|
};
|
|
23
30
|
this.convertMarkdown = mdFile => {
|
|
24
|
-
processor.process(mdFile).then(result => {
|
|
31
|
+
_seafileEditor.processor.process(mdFile).then(result => {
|
|
25
32
|
let innerHtml = String(result).replace(/<a /ig, '<a target="_blank" tabindex="-1"');
|
|
26
33
|
this.setState({
|
|
27
34
|
innerHtml
|
|
@@ -36,17 +43,17 @@ class DtableMarkdownViewer extends React.PureComponent {
|
|
|
36
43
|
}
|
|
37
44
|
render() {
|
|
38
45
|
if (this.isWindowsWechat) {
|
|
39
|
-
return /*#__PURE__*/
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
40
47
|
className: "long-text-container article",
|
|
41
48
|
dangerouslySetInnerHTML: {
|
|
42
49
|
__html: this.state.innerHtml
|
|
43
50
|
}
|
|
44
51
|
});
|
|
45
52
|
}
|
|
46
|
-
return /*#__PURE__*/
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(_seafileEditor.MarkdownViewer, {
|
|
47
54
|
markdownContent: this.props.markdownContent,
|
|
48
55
|
showTOC: this.props.showTOC
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
|
-
|
|
59
|
+
var _default = exports.default = DtableMarkdownViewer;
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactResponsive = _interopRequireDefault(require("react-responsive"));
|
|
11
|
+
var _lang = require("../lang");
|
|
12
|
+
var _EditEditorButton = _interopRequireDefault(require("../EditEditorButton"));
|
|
13
|
+
var _selectEditor = require("../select-editor");
|
|
14
|
+
require("./index.css");
|
|
15
|
+
class SingleSelectEditor extends _react.default.Component {
|
|
8
16
|
constructor(props) {
|
|
9
17
|
super(props);
|
|
10
18
|
this.onMouseDown = e => {
|
|
@@ -115,31 +123,31 @@ class SingleSelectEditor extends React.Component {
|
|
|
115
123
|
let option = this.formatOption();
|
|
116
124
|
let options = this.options;
|
|
117
125
|
let selectedOptions = option ? [option] : [];
|
|
118
|
-
return /*#__PURE__*/
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
119
127
|
ref: this.setEditorContainerRef,
|
|
120
128
|
className: "dtable-ui-single-select-editor"
|
|
121
|
-
}, /*#__PURE__*/
|
|
129
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
122
130
|
ref: this.setEditorRef,
|
|
123
131
|
className: option ? '' : 'd-inline-block',
|
|
124
132
|
onClick: this.onAddOptionToggle
|
|
125
|
-
}, option ? /*#__PURE__*/
|
|
133
|
+
}, option ? /*#__PURE__*/_react.default.createElement("div", {
|
|
126
134
|
className: "dtable-ui-single-select-option-container"
|
|
127
|
-
}, /*#__PURE__*/
|
|
135
|
+
}, /*#__PURE__*/_react.default.createElement(_selectEditor.SelectEditorOption, {
|
|
128
136
|
option: option
|
|
129
|
-
})) : /*#__PURE__*/
|
|
130
|
-
text: getLocale('Add_an_option')
|
|
131
|
-
})), isPopoverShow && /*#__PURE__*/
|
|
137
|
+
})) : /*#__PURE__*/_react.default.createElement(_EditEditorButton.default, {
|
|
138
|
+
text: (0, _lang.getLocale)('Add_an_option')
|
|
139
|
+
})), isPopoverShow && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
|
|
132
140
|
query: "(min-width: 768px)"
|
|
133
|
-
}, /*#__PURE__*/
|
|
141
|
+
}, /*#__PURE__*/_react.default.createElement(_selectEditor.PCSelectEditorPopover, {
|
|
134
142
|
popoverPosition: popoverPosition,
|
|
135
143
|
options: options,
|
|
136
144
|
selectedOptions: selectedOptions,
|
|
137
145
|
onOptionItemToggle: this.onOptionItemToggle,
|
|
138
146
|
isSupportNewOption: this.props.isSupportNewOption,
|
|
139
147
|
onAddNewOption: this.onAddNewOption
|
|
140
|
-
})), /*#__PURE__*/
|
|
148
|
+
})), /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
|
|
141
149
|
query: "(max-width: 767.8px)"
|
|
142
|
-
}, /*#__PURE__*/
|
|
150
|
+
}, /*#__PURE__*/_react.default.createElement(_selectEditor.MBSelectEditorPopover, {
|
|
143
151
|
isReadOnly: this.props.isReadOnly,
|
|
144
152
|
value: [this.state.newValue],
|
|
145
153
|
column: this.props.column,
|
|
@@ -156,4 +164,4 @@ SingleSelectEditor.defaultProps = {
|
|
|
156
164
|
isReadOnly: false,
|
|
157
165
|
value: ''
|
|
158
166
|
};
|
|
159
|
-
|
|
167
|
+
var _default = exports.default = SingleSelectEditor;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _SelectItem = _interopRequireDefault(require("../SelectItem"));
|
|
11
|
+
require("./index.css");
|
|
12
|
+
class SingleSelectFormatter extends _react.default.PureComponent {
|
|
6
13
|
constructor() {
|
|
7
14
|
super(...arguments);
|
|
8
15
|
this.getOption = () => {
|
|
@@ -13,7 +20,7 @@ class SingleSelectFormatter extends React.PureComponent {
|
|
|
13
20
|
} = this.props;
|
|
14
21
|
let option = options.find(item => item.id === value || item.name === value);
|
|
15
22
|
if (option) {
|
|
16
|
-
return /*#__PURE__*/
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_SelectItem.default, {
|
|
17
24
|
option: option,
|
|
18
25
|
fontSize: fontSize
|
|
19
26
|
});
|
|
@@ -25,8 +32,8 @@ class SingleSelectFormatter extends React.PureComponent {
|
|
|
25
32
|
containerClassName,
|
|
26
33
|
value
|
|
27
34
|
} = this.props;
|
|
28
|
-
let classname =
|
|
29
|
-
return /*#__PURE__*/
|
|
35
|
+
let classname = (0, _classnames.default)('dtable-ui cell-formatter-container single-select-formatter', containerClassName);
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
30
37
|
className: classname
|
|
31
38
|
}, value ? this.getOption() : '');
|
|
32
39
|
}
|
|
@@ -34,4 +41,4 @@ class SingleSelectFormatter extends React.PureComponent {
|
|
|
34
41
|
SingleSelectFormatter.defaultProps = {
|
|
35
42
|
options: []
|
|
36
43
|
};
|
|
37
|
-
|
|
44
|
+
var _default = exports.default = SingleSelectFormatter;
|
package/lib/TextEditor/index.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
10
|
+
var _reactstrap = require("reactstrap");
|
|
11
|
+
class TextEditor extends _react.default.Component {
|
|
5
12
|
constructor(props) {
|
|
6
13
|
super(props);
|
|
7
14
|
this.onCommit = () => {
|
|
@@ -30,7 +37,7 @@ class TextEditor extends React.Component {
|
|
|
30
37
|
selectionEnd,
|
|
31
38
|
value
|
|
32
39
|
} = event.currentTarget;
|
|
33
|
-
if (
|
|
40
|
+
if ((0, _isHotkey.default)('enter', event)) {
|
|
34
41
|
event.preventDefault();
|
|
35
42
|
event.target.blur();
|
|
36
43
|
} else if (event.keyCode === 37 && selectionStart === 0 || event.keyCode === 39 && selectionEnd === value.length) {
|
|
@@ -54,7 +61,7 @@ class TextEditor extends React.Component {
|
|
|
54
61
|
const {
|
|
55
62
|
isReadOnly
|
|
56
63
|
} = this.props;
|
|
57
|
-
return /*#__PURE__*/
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
58
65
|
ref: this.setInputRef,
|
|
59
66
|
type: "text",
|
|
60
67
|
value: this.state.newValue,
|
|
@@ -71,4 +78,4 @@ TextEditor.defaultProps = {
|
|
|
71
78
|
isReadOnly: false,
|
|
72
79
|
value: ''
|
|
73
80
|
};
|
|
74
|
-
|
|
81
|
+
var _default = exports.default = TextEditor;
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
require("./index.css");
|
|
11
|
+
class TextFormatter extends _react.default.Component {
|
|
5
12
|
constructor() {
|
|
6
13
|
super(...arguments);
|
|
7
14
|
this.getFormattedValue = val => {
|
|
@@ -19,12 +26,12 @@ class TextFormatter extends React.Component {
|
|
|
19
26
|
containerClassName,
|
|
20
27
|
value
|
|
21
28
|
} = this.props;
|
|
22
|
-
const classname =
|
|
29
|
+
const classname = (0, _classnames.default)('dtable-ui cell-formatter-container text-formatter', containerClassName);
|
|
23
30
|
const formattedValue = this.getFormattedValue(value);
|
|
24
|
-
return /*#__PURE__*/
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
25
32
|
className: classname,
|
|
26
33
|
title: formattedValue
|
|
27
34
|
}, formattedValue);
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
|
-
|
|
37
|
+
var _default = exports.default = TextFormatter;
|