@seafile/sdoc-editor 2.0.18-alph-1.0.2 → 2.0.18-alph-2.0.0
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/basic-sdk/comment/components/comment-participants-editor/index.js +1 -0
- package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
- package/dist/basic-sdk/extension/constants/element-type.js +2 -1
- package/dist/basic-sdk/extension/constants/index.js +8 -2
- package/dist/basic-sdk/extension/constants/menus-config.js +5 -0
- package/dist/basic-sdk/extension/plugins/index.js +7 -0
- package/dist/basic-sdk/extension/plugins/multi-column/plugin.js +0 -25
- package/dist/basic-sdk/extension/plugins/seatable-row/constants/index.js +10 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/RateFormatter.js +111 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SimpleCellFormatter.js +41 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SingleSelectOption.js +65 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/rate-formatter.css +23 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/widget/rate-item.js +78 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/helpers.js +442 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +425 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +76 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/link-content.js +133 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +214 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +125 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +143 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +192 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +51 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +90 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +46 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +62 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +124 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +160 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
- package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
- package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/collaborator-wrapper.js +3 -0
- package/dist/basic-sdk/extension/render/custom-element.js +5 -0
- package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +3 -2
- package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +0 -7
- package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +2 -1
- package/dist/constants/index.js +1 -0
- package/dist/pages/document-plugin-editor.js +3 -1
- package/package.json +1 -1
- package/public/locales/cs/sdoc-editor.json +7 -1
- package/public/locales/de/sdoc-editor.json +66 -60
- package/public/locales/en/sdoc-editor.json +9 -1
- package/public/locales/es/sdoc-editor.json +7 -1
- package/public/locales/es_AR/sdoc-editor.json +7 -1
- package/public/locales/es_MX/sdoc-editor.json +7 -1
- package/public/locales/fr/sdoc-editor.json +240 -234
- package/public/locales/it/sdoc-editor.json +7 -1
- package/public/locales/ru/sdoc-editor.json +8 -2
- package/public/locales/zh_CN/sdoc-editor.json +6 -1
- package/public/media/sdoc-editor-font/iconfont.css +15 -14
- package/public/media/sdoc-editor-font/iconfont.eot +0 -0
- package/public/media/sdoc-editor-font/iconfont.svg +3 -1
- package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
- package/public/media/sdoc-editor-font/iconfont.woff +0 -0
- package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
- package/public/media/sdoc-editor-font.css +11 -7
|
@@ -24,6 +24,7 @@ var _index5 = require("../../plugins/video/constants/index.js");
|
|
|
24
24
|
var _constants3 = require("../../../../basic-sdk/constants");
|
|
25
25
|
var _index6 = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
|
|
26
26
|
var _index7 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
|
|
27
|
+
var _index8 = _interopRequireDefault(require("../../plugins/seatable-row/dialog/add-seatable-row-dialog/index.js"));
|
|
27
28
|
const InsertElementDialog = _ref => {
|
|
28
29
|
let {
|
|
29
30
|
editor
|
|
@@ -37,6 +38,7 @@ const InsertElementDialog = _ref => {
|
|
|
37
38
|
const [validEditor, setValidEditor] = (0, _react.useState)(editor);
|
|
38
39
|
const [linkTitle, setLinkTitle] = (0, _react.useState)('');
|
|
39
40
|
const [handleSubmit, setHandleSubmit] = (0, _react.useState)(() => void 0);
|
|
41
|
+
const [data, setData] = (0, _react.useState)({});
|
|
40
42
|
const {
|
|
41
43
|
t
|
|
42
44
|
} = (0, _reactI18next.useTranslation)('sdoc-editor');
|
|
@@ -96,7 +98,8 @@ const InsertElementDialog = _ref => {
|
|
|
96
98
|
editor: paramEditor,
|
|
97
99
|
linkTitle,
|
|
98
100
|
// link shortcut wrapping link
|
|
99
|
-
handleSubmit
|
|
101
|
+
handleSubmit,
|
|
102
|
+
data
|
|
100
103
|
} = _ref2;
|
|
101
104
|
setInsertPosition(insertPosition);
|
|
102
105
|
setSlateNode(slateNode);
|
|
@@ -113,6 +116,7 @@ const InsertElementDialog = _ref => {
|
|
|
113
116
|
setHandleSubmit(handleSubmit);
|
|
114
117
|
// Apply for comment editor, as it has a different editor instance
|
|
115
118
|
setValidEditor(paramEditor || editor);
|
|
119
|
+
setData(data);
|
|
116
120
|
if (type === _constants2.LOCAL_IMAGE) {
|
|
117
121
|
setTimeout(() => {
|
|
118
122
|
uploadLocalImageInputRef.current && uploadLocalImageInputRef.current.click();
|
|
@@ -133,6 +137,7 @@ const InsertElementDialog = _ref => {
|
|
|
133
137
|
setInsertVideoCallback(null);
|
|
134
138
|
setValidEditor(null);
|
|
135
139
|
setLinkTitle('');
|
|
140
|
+
setData('');
|
|
136
141
|
}, []);
|
|
137
142
|
const props = {
|
|
138
143
|
insertPosition,
|
|
@@ -141,7 +146,8 @@ const InsertElementDialog = _ref => {
|
|
|
141
146
|
element,
|
|
142
147
|
closeDialog,
|
|
143
148
|
linkTitle,
|
|
144
|
-
handleSubmit
|
|
149
|
+
handleSubmit,
|
|
150
|
+
data
|
|
145
151
|
};
|
|
146
152
|
switch (dialogType) {
|
|
147
153
|
case _constants2.ELEMENT_TYPE.TABLE:
|
|
@@ -240,6 +246,10 @@ const InsertElementDialog = _ref => {
|
|
|
240
246
|
closeModule: closeDialog
|
|
241
247
|
});
|
|
242
248
|
}
|
|
249
|
+
case _constants2.ELEMENT_TYPE.SEATABLE_ROW:
|
|
250
|
+
{
|
|
251
|
+
return /*#__PURE__*/_react.default.createElement(_index8.default, props);
|
|
252
|
+
}
|
|
243
253
|
default:
|
|
244
254
|
{
|
|
245
255
|
return null;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
|
|
6
|
+
exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_ROW = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
|
|
7
7
|
const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
|
|
8
8
|
const TITLE = exports.TITLE = 'title';
|
|
9
9
|
const SUBTITLE = exports.SUBTITLE = 'subtitle';
|
|
@@ -44,6 +44,7 @@ const FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK_INSET_INPUT_TEMP = 'file_li
|
|
|
44
44
|
const QUICK_INSERT = exports.QUICK_INSERT = 'quick_insert';
|
|
45
45
|
const VIDEO_LINK = exports.VIDEO_LINK = 'video_link';
|
|
46
46
|
const SEATABLE_COLUMN = exports.SEATABLE_COLUMN = 'seatable_column';
|
|
47
|
+
const SEATABLE_ROW = exports.SEATABLE_ROW = 'seatable_row';
|
|
47
48
|
const SEATABLE_TABLE = exports.SEATABLE_TABLE = 'seatable_table';
|
|
48
49
|
const ASK_AI = exports.ASK_AI = 'ask_ai';
|
|
49
50
|
|
|
@@ -344,6 +344,12 @@ Object.defineProperty(exports, "SEATABLE_COLUMN", {
|
|
|
344
344
|
return _elementType.SEATABLE_COLUMN;
|
|
345
345
|
}
|
|
346
346
|
});
|
|
347
|
+
Object.defineProperty(exports, "SEATABLE_ROW", {
|
|
348
|
+
enumerable: true,
|
|
349
|
+
get: function () {
|
|
350
|
+
return _elementType.SEATABLE_ROW;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
347
353
|
Object.defineProperty(exports, "SEATABLE_TABLE", {
|
|
348
354
|
enumerable: true,
|
|
349
355
|
get: function () {
|
|
@@ -537,7 +543,7 @@ const FILE_TYPE = exports.FILE_TYPE = {
|
|
|
537
543
|
[_elementType.SDOC_LINK]: 'sdoc',
|
|
538
544
|
[_elementType.VIDEO]: 'video'
|
|
539
545
|
};
|
|
540
|
-
const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.MULTI_COLUMN];
|
|
546
|
+
const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.MULTI_COLUMN, _elementType.SEATABLE_ROW];
|
|
541
547
|
const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP = {
|
|
542
548
|
[_elementType.PARAGRAPH]: [_elementType.CALL_OUT],
|
|
543
549
|
[_elementType.TITLE]: [_elementType.CALL_OUT],
|
|
@@ -555,4 +561,4 @@ const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP =
|
|
|
555
561
|
[_elementType.HEADER6]: [_elementType.CALL_OUT],
|
|
556
562
|
[_elementType.CALL_OUT]: [_elementType.CALL_OUT]
|
|
557
563
|
};
|
|
558
|
-
const ROOT_ELEMENT_TYPES = exports.ROOT_ELEMENT_TYPES = [_elementType.PARAGRAPH, _elementType.TITLE, _elementType.SUBTITLE, _elementType.CHECK_LIST_ITEM, _elementType.ORDERED_LIST, _elementType.UNORDERED_LIST, _elementType.BLOCKQUOTE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CALL_OUT, _elementType.TABLE, _elementType.CODE_BLOCK, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE];
|
|
564
|
+
const ROOT_ELEMENT_TYPES = exports.ROOT_ELEMENT_TYPES = [_elementType.PARAGRAPH, _elementType.TITLE, _elementType.SUBTITLE, _elementType.CHECK_LIST_ITEM, _elementType.ORDERED_LIST, _elementType.UNORDERED_LIST, _elementType.BLOCKQUOTE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CALL_OUT, _elementType.TABLE, _elementType.CODE_BLOCK, _elementType.IMAGE_BLOCK, _elementType.VIDEO, _elementType.SEATABLE_TABLE, _elementType.SEATABLE_ROW];
|
|
@@ -223,6 +223,11 @@ const MENUS_CONFIG_MAP = exports.MENUS_CONFIG_MAP = {
|
|
|
223
223
|
iconClass: 'sdocfont sdoc-find-replace',
|
|
224
224
|
text: 'Search_and_replace'
|
|
225
225
|
},
|
|
226
|
+
[_elementType.SEATABLE_ROW]: {
|
|
227
|
+
id: `sdoc_${_elementType.SEATABLE_ROW}`,
|
|
228
|
+
iconClass: 'sdocfont sdoc-seatable-row',
|
|
229
|
+
text: 'SeaTable_row'
|
|
230
|
+
},
|
|
226
231
|
[_elementType.SEATABLE_COLUMN]: {
|
|
227
232
|
id: `sdoc_${_elementType.SEATABLE_COLUMN}`,
|
|
228
233
|
iconClass: 'sdocfont sdoc-choose-column',
|
|
@@ -119,6 +119,12 @@ Object.defineProperty(exports, "SeaTableColumnPlugin", {
|
|
|
119
119
|
return _seatableColumn.default;
|
|
120
120
|
}
|
|
121
121
|
});
|
|
122
|
+
Object.defineProperty(exports, "SeaTableRowPlugin", {
|
|
123
|
+
enumerable: true,
|
|
124
|
+
get: function () {
|
|
125
|
+
return _seatableRow.default;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
122
128
|
Object.defineProperty(exports, "SeaTableViewsPlugin", {
|
|
123
129
|
enumerable: true,
|
|
124
130
|
get: function () {
|
|
@@ -186,6 +192,7 @@ var _mention = _interopRequireDefault(require("./mention"));
|
|
|
186
192
|
var _quickInsert = _interopRequireDefault(require("./quick-insert"));
|
|
187
193
|
var _wikiLink = _interopRequireDefault(require("./wiki-link"));
|
|
188
194
|
var _seatableColumn = _interopRequireDefault(require("./seatable-column"));
|
|
195
|
+
var _seatableRow = _interopRequireDefault(require("./seatable-row"));
|
|
189
196
|
var _seatableTables = _interopRequireDefault(require("./seatable-tables"));
|
|
190
197
|
var _group = _interopRequireDefault(require("./group"));
|
|
191
198
|
const Plugins = [_markdown.default, _html.default, _header.default, _link.default, _blockquote.default, _list.default, _checkList.default, _codeBlock.default, _image.default, _video.default, _table.default, _multiColumn.default, _textStyle.default, _textAlign.default, _font.default, _sdocLink.default, _paragraph.default, _fileLink.default, _callout.default, _searchReplace.default, _quickInsert.default, _group.default];
|
|
@@ -8,7 +8,6 @@ var _slate = require("@seafile/slate");
|
|
|
8
8
|
var _core = require("../../core");
|
|
9
9
|
var _constants = require("../../constants");
|
|
10
10
|
var _helper = require("./helper");
|
|
11
|
-
var _unwrapList = require("../list/transforms/unwrap-list");
|
|
12
11
|
const withMultiColumn = editor => {
|
|
13
12
|
const {
|
|
14
13
|
normalizeNode,
|
|
@@ -58,30 +57,6 @@ const withMultiColumn = editor => {
|
|
|
58
57
|
|
|
59
58
|
// When selection is at start of the only one existed child nodes in current column node, delete column node
|
|
60
59
|
if (isOnlyOneChild && isAtStart) {
|
|
61
|
-
// Transform non-paragraph elements without callout element to paragraph elements
|
|
62
|
-
const currentNodeInColumn = currentColumnEntry[0].children[0];
|
|
63
|
-
if (currentNodeInColumn.type !== _constants.PARAGRAPH) {
|
|
64
|
-
var _currentNodeInColumn$;
|
|
65
|
-
const currentNodePathInColumn = (0, _core.findPath)(editor, currentNodeInColumn);
|
|
66
|
-
// Unwrap list if list-item exists in the current column node
|
|
67
|
-
if ([_constants.UNORDERED_LIST, _constants.ORDERED_LIST].includes(currentNodeInColumn.type)) {
|
|
68
|
-
(0, _unwrapList.unwrapList)(editor);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
if ([_constants.UNORDERED_LIST, _constants.ORDERED_LIST].includes(currentNodeInColumn === null || currentNodeInColumn === void 0 ? void 0 : (_currentNodeInColumn$ = currentNodeInColumn.children[0]) === null || _currentNodeInColumn$ === void 0 ? void 0 : _currentNodeInColumn$.type)) {
|
|
72
|
-
_slate.Transforms.unwrapNodes(editor, {
|
|
73
|
-
at: currentNodePathInColumn
|
|
74
|
-
});
|
|
75
|
-
} else {
|
|
76
|
-
_slate.Transforms.setNodes(editor, {
|
|
77
|
-
type: _constants.PARAGRAPH
|
|
78
|
-
}, {
|
|
79
|
-
at: currentNodePathInColumn
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
60
|
// Delete multi_column and column wrap when only one child column node exists
|
|
86
61
|
if (childColumn.length <= 2) {
|
|
87
62
|
deleteBackward();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NEED_FORMATTER = exports.LINK_NOT_SUPPORT_TYPES = exports.DELETED_OPTION_BACKGROUND_COLOR = void 0;
|
|
7
|
+
var _dtableUtils = require("dtable-utils");
|
|
8
|
+
const LINK_NOT_SUPPORT_TYPES = exports.LINK_NOT_SUPPORT_TYPES = [_dtableUtils.CellType.CHECKBOX, _dtableUtils.CellType.RATE, _dtableUtils.CellType.LONG_TEXT, _dtableUtils.CellType.IMAGE, _dtableUtils.CellType.FILE, _dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT, _dtableUtils.CellType.GEOLOCATION, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.BUTTON, _dtableUtils.CellType.LINK, _dtableUtils.CellType.DIGITAL_SIGN];
|
|
9
|
+
const NEED_FORMATTER = exports.NEED_FORMATTER = [_dtableUtils.CellType.CREATOR, _dtableUtils.CellType.LAST_MODIFIER, _dtableUtils.CellType.SINGLE_SELECT];
|
|
10
|
+
const DELETED_OPTION_BACKGROUND_COLOR = exports.DELETED_OPTION_BACKGROUND_COLOR = '#eaeaea';
|
|
@@ -0,0 +1,111 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _rateItem = _interopRequireDefault(require("./widget/rate-item"));
|
|
11
|
+
require("./rate-formatter.css");
|
|
12
|
+
class RateFormatter extends _react.default.Component {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
super(props);
|
|
15
|
+
(0, _defineProperty2.default)(this, "onMouseEnterRateItem", index => {
|
|
16
|
+
this.setState({
|
|
17
|
+
enterRateItemIndex: index
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
(0, _defineProperty2.default)(this, "onMouseLeaveRateItem", () => {
|
|
21
|
+
this.setState({
|
|
22
|
+
enterRateItemIndex: -1
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
(0, _defineProperty2.default)(this, "onChangeRateNumber", index => {
|
|
26
|
+
const {
|
|
27
|
+
value
|
|
28
|
+
} = this.state;
|
|
29
|
+
let {
|
|
30
|
+
column,
|
|
31
|
+
onCommit,
|
|
32
|
+
row
|
|
33
|
+
} = this.props;
|
|
34
|
+
let updated;
|
|
35
|
+
if (value === index) {
|
|
36
|
+
this.setState({
|
|
37
|
+
value: ''
|
|
38
|
+
});
|
|
39
|
+
updated = {
|
|
40
|
+
[column === null || column === void 0 ? void 0 : column.key]: ''
|
|
41
|
+
};
|
|
42
|
+
} else {
|
|
43
|
+
this.setState({
|
|
44
|
+
value: index
|
|
45
|
+
});
|
|
46
|
+
updated = {
|
|
47
|
+
[column === null || column === void 0 ? void 0 : column.key]: index
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
onCommit({
|
|
51
|
+
rowId: row ? row._id : '',
|
|
52
|
+
cellKey: column === null || column === void 0 ? void 0 : column.key,
|
|
53
|
+
updated
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, _defineProperty2.default)(this, "getRateMaxStar", () => {
|
|
57
|
+
const {
|
|
58
|
+
column,
|
|
59
|
+
value,
|
|
60
|
+
isCellSelected,
|
|
61
|
+
readOnly
|
|
62
|
+
} = this.props;
|
|
63
|
+
const {
|
|
64
|
+
enterRateItemIndex
|
|
65
|
+
} = this.state;
|
|
66
|
+
const {
|
|
67
|
+
rate_max_number
|
|
68
|
+
} = column.data || {};
|
|
69
|
+
const editable = !readOnly && this.props.editable;
|
|
70
|
+
let rateList = [];
|
|
71
|
+
if (value || isCellSelected) {
|
|
72
|
+
for (let i = 0; i < rate_max_number; i++) {
|
|
73
|
+
let rateItem = /*#__PURE__*/_react.default.createElement(_rateItem.default, {
|
|
74
|
+
key: i,
|
|
75
|
+
enterRateItemIndex: enterRateItemIndex,
|
|
76
|
+
rateItemIndex: i + 1,
|
|
77
|
+
onMouseEnterRateItem: this.onMouseEnterRateItem,
|
|
78
|
+
onMouseLeaveRateItem: this.onMouseLeaveRateItem,
|
|
79
|
+
value: value,
|
|
80
|
+
column: column,
|
|
81
|
+
isShowRateItem: isCellSelected && editable,
|
|
82
|
+
onChangeRateNumber: this.onChangeRateNumber,
|
|
83
|
+
editable: editable
|
|
84
|
+
});
|
|
85
|
+
rateList.push(rateItem);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return rateList;
|
|
89
|
+
});
|
|
90
|
+
this.state = {
|
|
91
|
+
value: props.value || 0,
|
|
92
|
+
enterRateItemIndex: -1
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
render() {
|
|
96
|
+
const {
|
|
97
|
+
value
|
|
98
|
+
} = this.props;
|
|
99
|
+
let rateList = this.getRateMaxStar();
|
|
100
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
101
|
+
className: "d-flex rate-formatter",
|
|
102
|
+
title: value,
|
|
103
|
+
role: "button",
|
|
104
|
+
"aria-label": `${value}${this.props.cellAriaLabel || ''}`
|
|
105
|
+
}, rateList);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
RateFormatter.defaultProps = {
|
|
109
|
+
editable: true
|
|
110
|
+
};
|
|
111
|
+
var _default = exports.default = RateFormatter;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
class SimpleCellFormatter extends _react.default.Component {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
(0, _defineProperty2.default)(this, "getFormattedValue", val => {
|
|
14
|
+
let formattedValue = val;
|
|
15
|
+
if (Object.prototype.toString.call(val) === '[object Boolean]') {
|
|
16
|
+
formattedValue += '';
|
|
17
|
+
}
|
|
18
|
+
return formattedValue;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
shouldComponentUpdate(nextProps) {
|
|
22
|
+
return nextProps.value !== this.props.value;
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
const {
|
|
26
|
+
value,
|
|
27
|
+
type,
|
|
28
|
+
cellAriaLabel = ''
|
|
29
|
+
} = this.props;
|
|
30
|
+
if (typeof value === 'object') {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
let formattedValue = this.getFormattedValue(value);
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
35
|
+
className: type ? `grid-cell-type-${type}` : 'grid-cell-type-default',
|
|
36
|
+
title: formattedValue,
|
|
37
|
+
"aria-label": `${formattedValue}${cellAriaLabel}`
|
|
38
|
+
}, formattedValue);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
var _default = exports.default = SimpleCellFormatter;
|
|
@@ -0,0 +1,65 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _constants = require("../../../constants");
|
|
11
|
+
var _helpers = require("../helpers");
|
|
12
|
+
class SingleSelectOption extends _react.default.Component {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
(0, _defineProperty2.default)(this, "getCurrentOption", () => {
|
|
16
|
+
let {
|
|
17
|
+
value,
|
|
18
|
+
column
|
|
19
|
+
} = this.props;
|
|
20
|
+
let options = (0, _helpers.getSelectColumnOptions)(column);
|
|
21
|
+
return options.find(item => item.id === value);
|
|
22
|
+
});
|
|
23
|
+
(0, _defineProperty2.default)(this, "getStyle", option => {
|
|
24
|
+
let style = {
|
|
25
|
+
display: 'inline-block',
|
|
26
|
+
padding: '0px 10px',
|
|
27
|
+
height: '20px',
|
|
28
|
+
lineHeight: '20px',
|
|
29
|
+
textAlign: 'center',
|
|
30
|
+
borderRadius: '10px',
|
|
31
|
+
fontSize: '13px'
|
|
32
|
+
};
|
|
33
|
+
if (option) {
|
|
34
|
+
style.backgroundColor = option.color;
|
|
35
|
+
style.color = option.textColor || null;
|
|
36
|
+
} else {
|
|
37
|
+
style.backgroundColor = _constants.DELETED_OPTION_BACKGROUND_COLOR;
|
|
38
|
+
}
|
|
39
|
+
return style;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
render() {
|
|
43
|
+
const {
|
|
44
|
+
value,
|
|
45
|
+
column,
|
|
46
|
+
cellAriaLabel = ''
|
|
47
|
+
} = this.props;
|
|
48
|
+
if (!value) {
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
50
|
+
className: "w-100 h-100",
|
|
51
|
+
"aria-label": cellAriaLabel
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const currentOption = this.getCurrentOption();
|
|
55
|
+
const name = currentOption ? currentOption.name : null;
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
57
|
+
// If parent node is FormulaFormatter, column is {data: array_data}, so column.type is undefined
|
|
58
|
+
className: 'grid-cell-type-' + (column.type || ''),
|
|
59
|
+
style: this.getStyle(currentOption),
|
|
60
|
+
title: name,
|
|
61
|
+
"aria-label": `${name}${cellAriaLabel}`
|
|
62
|
+
}, name);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
var _default = exports.default = SingleSelectOption;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.rate-formatter {
|
|
2
|
+
height: fit-content;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.rate-formatter .rate-item {
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.rate-item-active {
|
|
10
|
+
opacity: 1 !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@media (max-width: 767px) {
|
|
14
|
+
.mobile-row-expand-rate-container .rate-item,
|
|
15
|
+
.mobile-row-expand-rate-container .rate-item-active {
|
|
16
|
+
margin-right: 0.25rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.mobile-row-expand-rate-container .rate-item .dtable-font,
|
|
20
|
+
.mobile-row-expand-rate-container .rate-item-active .dtable-font {
|
|
21
|
+
font-size: 24px;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactstrap = require("reactstrap");
|
|
11
|
+
class RateItem extends _react.default.Component {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
(0, _defineProperty2.default)(this, "onMouseEnterRateItem", () => {
|
|
15
|
+
const {
|
|
16
|
+
rateItemIndex
|
|
17
|
+
} = this.props;
|
|
18
|
+
this.props.onMouseEnterRateItem(rateItemIndex);
|
|
19
|
+
});
|
|
20
|
+
(0, _defineProperty2.default)(this, "onMouseLeaveRateItem", () => {
|
|
21
|
+
this.props.onMouseLeaveRateItem();
|
|
22
|
+
});
|
|
23
|
+
(0, _defineProperty2.default)(this, "onChangeRateNumber", () => {
|
|
24
|
+
const {
|
|
25
|
+
onChangeRateNumber,
|
|
26
|
+
rateItemIndex,
|
|
27
|
+
editable
|
|
28
|
+
} = this.props;
|
|
29
|
+
if (onChangeRateNumber && editable) {
|
|
30
|
+
onChangeRateNumber(rateItemIndex);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
this.tooltipRef = /*#__PURE__*/_react.default.createRef();
|
|
34
|
+
}
|
|
35
|
+
render() {
|
|
36
|
+
const {
|
|
37
|
+
enterRateItemIndex,
|
|
38
|
+
rateItemIndex,
|
|
39
|
+
value,
|
|
40
|
+
column,
|
|
41
|
+
isShowRateItem,
|
|
42
|
+
editable
|
|
43
|
+
} = this.props;
|
|
44
|
+
const {
|
|
45
|
+
rate_style_color,
|
|
46
|
+
rate_style_type
|
|
47
|
+
} = column.data || {};
|
|
48
|
+
const rateShowType = rate_style_type ? rate_style_type : 'dtable-icon-rate';
|
|
49
|
+
if (!isShowRateItem && rateItemIndex > value) return null;
|
|
50
|
+
let style = {
|
|
51
|
+
color: value >= rateItemIndex ? rate_style_color : '#e5e5e5'
|
|
52
|
+
};
|
|
53
|
+
if (enterRateItemIndex >= rateItemIndex) {
|
|
54
|
+
style = {
|
|
55
|
+
color: rate_style_color,
|
|
56
|
+
opacity: value >= rateItemIndex ? 1 : 0.4
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
+
onMouseEnter: this.onMouseEnterRateItem,
|
|
61
|
+
onMouseLeave: this.onMouseLeaveRateItem,
|
|
62
|
+
style: {
|
|
63
|
+
cursor: editable ? 'pointer' : 'default'
|
|
64
|
+
},
|
|
65
|
+
onClick: this.onChangeRateNumber,
|
|
66
|
+
className: `rate-item ${value >= rateItemIndex ? 'rate-item-active' : ''}`
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
68
|
+
className: `dtable-font ${rateShowType}`,
|
|
69
|
+
ref: this.tooltipRef,
|
|
70
|
+
style: style,
|
|
71
|
+
"aria-hidden": "true"
|
|
72
|
+
}), editable && /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledTooltip, {
|
|
73
|
+
placement: "bottom",
|
|
74
|
+
target: this.tooltipRef
|
|
75
|
+
}, rateItemIndex));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
var _default = exports.default = RateItem;
|