dtable-ui-component 5.3.1-beta6 → 5.3.2

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.
Files changed (247) hide show
  1. package/lib/CheckboxEditor/index.css +20 -3
  2. package/lib/CheckboxEditor/index.js +35 -98
  3. package/lib/CheckboxFormatter/index.js +9 -6
  4. package/lib/CollaboratorEditor/index.css +35 -12
  5. package/lib/CollaboratorEditor/index.js +212 -18
  6. package/lib/CollaboratorEditor/{mb-collaborator-editor → mb-collaborator-editor-popover}/index.js +29 -26
  7. package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +97 -0
  8. package/lib/CollaboratorItem/index.css +1 -1
  9. package/lib/CollaboratorItem/index.js +2 -6
  10. package/lib/DTableFiltersPopover/utils/index.js +7 -1
  11. package/lib/DTableFiltersPopover/widgets/filter-calendar.js +2 -2
  12. package/lib/DTableGroupSelect/select-option-group.css +17 -17
  13. package/lib/DTableGroupSelect/select-option-group.js +1 -1
  14. package/lib/DTableSelect/index.js +1 -3
  15. package/lib/DateEditor/index.js +51 -14
  16. package/lib/DateEditor/pc-date-editor-popover.js +12 -145
  17. package/lib/Department-editor/department-single-select.js +1 -1
  18. package/lib/Department-editor/index.js +4 -3
  19. package/lib/DepartmentSingleSelectFormatter/index.js +1 -2
  20. package/lib/FileEditor/index.js +11 -258
  21. package/lib/FileEditor/pc-files-addition/index.js +1 -0
  22. package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +1 -0
  23. package/lib/FileEditor/pc-files-preview/index.js +1 -0
  24. package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +1 -0
  25. package/lib/FileItemFormatter/assets/file/192/excel.png +0 -0
  26. package/lib/FileItemFormatter/assets/file/192/file.png +0 -0
  27. package/lib/FileItemFormatter/assets/file/192/music.png +0 -0
  28. package/lib/FileItemFormatter/assets/file/192/pdf.png +0 -0
  29. package/lib/FileItemFormatter/assets/file/192/pic.png +0 -0
  30. package/lib/FileItemFormatter/assets/file/192/ppt.png +0 -0
  31. package/lib/FileItemFormatter/assets/file/192/txt.png +0 -0
  32. package/lib/FileItemFormatter/assets/file/192/video.png +0 -0
  33. package/lib/FileItemFormatter/assets/file/192/word.png +0 -0
  34. package/lib/FileItemFormatter/assets/file/24/excel.png +0 -0
  35. package/lib/FileItemFormatter/assets/file/24/file.png +0 -0
  36. package/lib/FileItemFormatter/assets/file/24/music.png +0 -0
  37. package/lib/FileItemFormatter/assets/file/24/pdf.png +0 -0
  38. package/lib/FileItemFormatter/assets/file/24/pic.png +0 -0
  39. package/lib/FileItemFormatter/assets/file/24/ppt.png +0 -0
  40. package/lib/FileItemFormatter/assets/file/24/txt.png +0 -0
  41. package/lib/FileItemFormatter/assets/file/24/video.png +0 -0
  42. package/lib/FileItemFormatter/assets/file/24/word.png +0 -0
  43. package/lib/FileItemFormatter/assets/folder/folder-192.png +0 -0
  44. package/lib/FileItemFormatter/assets/folder/folder-24.png +0 -0
  45. package/lib/FileItemFormatter/index.js +20 -19
  46. package/lib/FileItemFormatter/utils.js +99 -0
  47. package/lib/FileUploader/index.js +14 -268
  48. package/lib/FormulaFormatter/index.js +1 -2
  49. package/lib/FormulaFormatter/utils.js +31 -0
  50. package/lib/LinkEditor/pc-link-editor-popover/index.js +1 -1
  51. package/lib/MultipleSelectEditor/index.css +9 -0
  52. package/lib/MultipleSelectEditor/index.js +177 -16
  53. package/lib/NumberEditor/index.js +77 -64
  54. package/lib/{RowExpandFormatter/RowExpandEmailFormatter → RowExpandEmailFormatter}/index.css +1 -1
  55. package/lib/{RowExpandFormatter/RowExpandEmailFormatter → RowExpandEmailFormatter}/index.js +1 -1
  56. package/lib/{RowExpandFormatter/RowExpandFileFormatter → RowExpandFileFormatter}/index.css +6 -6
  57. package/lib/{RowExpandFormatter/RowExpandFileFormatter → RowExpandFileFormatter}/index.js +1 -3
  58. package/lib/{RowExpandFormatter/RowExpandFileFormatter → RowExpandFileFormatter}/row-expand-file-item-formatter.js +11 -10
  59. package/lib/RowExpandFormatter/index.css +1 -27
  60. package/lib/RowExpandFormatter/index.js +100 -83
  61. package/lib/{RowExpandFormatter/RowExpandFormulaFormatter → RowExpandFormulaFormatter}/index.js +10 -11
  62. package/lib/{RowExpandFormatter/RowExpandImageFormatter → RowExpandImageFormatter}/index.css +6 -6
  63. package/lib/{RowExpandFormatter/RowExpandImageFormatter → RowExpandImageFormatter}/index.js +1 -1
  64. package/lib/{RowExpandFormatter/RowExpandImageFormatter → RowExpandImageFormatter}/row-expand-image-item-formatter.js +3 -3
  65. package/lib/{RowExpandFormatter/RowExpandLinkFormatter → RowExpandLinkFormatter}/collaborator-item-formatter.js +1 -1
  66. package/lib/{RowExpandFormatter/RowExpandLinkFormatter → RowExpandLinkFormatter}/index.js +6 -6
  67. package/lib/RowExpandLinkFormatter/utils.js +71 -0
  68. package/lib/{RowExpandFormatter/RowExpandRateFormatter → RowExpandRateFormatter}/index.css +1 -1
  69. package/lib/RowExpandUrlFormatter/index.css +1 -0
  70. package/lib/{RowExpandFormatter/RowExpandUrlFormatter → RowExpandUrlFormatter}/index.js +3 -4
  71. package/lib/SingleSelectEditor/index.css +14 -0
  72. package/lib/SingleSelectEditor/index.js +156 -16
  73. package/lib/TextEditor/index.js +42 -113
  74. package/lib/constants/index.js +2 -34
  75. package/lib/css/cell-editor.css +2 -18
  76. package/lib/index.js +46 -74
  77. package/lib/lang/index.js +16 -19
  78. package/lib/locals/de.js +103 -0
  79. package/lib/locals/en.js +104 -0
  80. package/lib/locals/es.js +103 -0
  81. package/lib/locals/fr.js +103 -0
  82. package/lib/locals/pt.js +103 -0
  83. package/lib/locals/ru.js +103 -0
  84. package/lib/locals/zh-CN.js +104 -0
  85. package/lib/select-editor/index.js +6 -6
  86. package/lib/select-editor/{mb-select-editor → mb-select-editor-popover}/index.js +3 -3
  87. package/lib/select-editor/pc-select-editor-popover/index.css +71 -0
  88. package/lib/select-editor/pc-select-editor-popover/index.js +122 -0
  89. package/lib/utils/editor-utils.js +6 -1
  90. package/lib/utils/url.js +8 -121
  91. package/lib/utils/utils.js +2 -145
  92. package/package.json +2 -3
  93. package/lib/CollaboratorEditor/pc-collaborator-editor/index.js +0 -257
  94. package/lib/Comment/body/comment.js +0 -190
  95. package/lib/Comment/body/index.css +0 -95
  96. package/lib/Comment/body/index.js +0 -32
  97. package/lib/Comment/footer/btns/index.css +0 -40
  98. package/lib/Comment/footer/btns/index.js +0 -113
  99. package/lib/Comment/footer/index.css +0 -157
  100. package/lib/Comment/footer/index.js +0 -170
  101. package/lib/Comment/footer/input/index.css +0 -52
  102. package/lib/Comment/footer/input/index.js +0 -448
  103. package/lib/Comment/footer/input/participant/index.css +0 -0
  104. package/lib/Comment/footer/input/participant/index.js +0 -53
  105. package/lib/Comment/footer/participants/index.css +0 -22
  106. package/lib/Comment/footer/participants/index.js +0 -68
  107. package/lib/Comment/footer/participants/participant/index.css +0 -5
  108. package/lib/Comment/footer/participants/participant/index.js +0 -32
  109. package/lib/Comment/footer/participants/participant-select/index.css +0 -104
  110. package/lib/Comment/footer/participants/participant-select/index.js +0 -182
  111. package/lib/Comment/index.css +0 -19
  112. package/lib/Comment/index.js +0 -305
  113. package/lib/Comment/model.js +0 -25
  114. package/lib/Comment/utils/common.js +0 -62
  115. package/lib/Comment/utils/index.js +0 -27
  116. package/lib/Comment/utils/utilities.js +0 -176
  117. package/lib/DeleteTip/index.js +0 -50
  118. package/lib/DigitalSignEditor/constants.js +0 -7
  119. package/lib/DigitalSignEditor/index.css +0 -69
  120. package/lib/DigitalSignEditor/index.js +0 -182
  121. package/lib/DigitalSignEditor/service.js +0 -38
  122. package/lib/DigitalSignEditor/signature-board/index.css +0 -35
  123. package/lib/DigitalSignEditor/signature-board/index.js +0 -135
  124. package/lib/DigitalSignEditor/signature-board/signature-tool.js +0 -396
  125. package/lib/DigitalSignEditor/utils.js +0 -29
  126. package/lib/DurationEditor/index.js +0 -111
  127. package/lib/EmailEditor/index.js +0 -59
  128. package/lib/FileEditor/addition-previewer/index.css +0 -1
  129. package/lib/FileEditor/addition-previewer/index.js +0 -52
  130. package/lib/FileEditor/addition-previewer/local-file-addition/index.css +0 -1
  131. package/lib/FileEditor/addition-previewer/local-file-addition/index.js +0 -252
  132. package/lib/FileEditor/constants.js +0 -7
  133. package/lib/FileEditor/files-previewer/file-previewer/dropdown-menu.js +0 -74
  134. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.css +0 -5
  135. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.js +0 -77
  136. package/lib/FileEditor/files-previewer/file-previewer/index.css +0 -88
  137. package/lib/FileEditor/files-previewer/file-previewer/index.js +0 -167
  138. package/lib/FileEditor/files-previewer/index.css +0 -56
  139. package/lib/FileEditor/files-previewer/index.js +0 -277
  140. package/lib/FileEditor/index.css +0 -6
  141. package/lib/FileEditor/utils.js +0 -22
  142. package/lib/FileUploader/index.css +0 -9
  143. package/lib/GeolocationEditor/country-editor.js +0 -319
  144. package/lib/GeolocationEditor/index.css +0 -641
  145. package/lib/GeolocationEditor/index.js +0 -241
  146. package/lib/GeolocationEditor/location-editor.js +0 -368
  147. package/lib/GeolocationEditor/map-editor/index.js +0 -456
  148. package/lib/GeolocationEditor/map-editor/large-editor/index.css +0 -137
  149. package/lib/GeolocationEditor/map-editor/large-editor/index.js +0 -461
  150. package/lib/GeolocationEditor/map-editor-utils.js +0 -153
  151. package/lib/GeolocationEditor/map-selection-editor/index.js +0 -455
  152. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.css +0 -1
  153. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.js +0 -447
  154. package/lib/GeolocationEditor/parse-geolocation.js +0 -282
  155. package/lib/GeolocationEditor/province-city-editor.js +0 -292
  156. package/lib/GeolocationEditor/province-editor.js +0 -226
  157. package/lib/GeolocationEditor/selector-header-item.js +0 -28
  158. package/lib/GeolocationEditor/selector-list.js +0 -33
  159. package/lib/GeolocationEditor/with-ref.js +0 -27
  160. package/lib/ImageEditor/addition-previewer/image-link/index.css +0 -45
  161. package/lib/ImageEditor/addition-previewer/image-link/index.js +0 -73
  162. package/lib/ImageEditor/addition-previewer/index.css +0 -106
  163. package/lib/ImageEditor/addition-previewer/index.js +0 -63
  164. package/lib/ImageEditor/addition-previewer/local-image-addition/index.css +0 -125
  165. package/lib/ImageEditor/addition-previewer/local-image-addition/index.js +0 -254
  166. package/lib/ImageEditor/constants.js +0 -7
  167. package/lib/ImageEditor/images-previewer/image-preview/index.css +0 -59
  168. package/lib/ImageEditor/images-previewer/image-preview/index.js +0 -155
  169. package/lib/ImageEditor/images-previewer/index.css +0 -18
  170. package/lib/ImageEditor/images-previewer/index.js +0 -140
  171. package/lib/ImageEditor/index.css +0 -24
  172. package/lib/ImageEditor/index.js +0 -194
  173. package/lib/ImageThumbnail/index.css +0 -20
  174. package/lib/ImageThumbnail/index.js +0 -136
  175. package/lib/RowExpandDialog/body/index.css +0 -21
  176. package/lib/RowExpandDialog/body/index.js +0 -262
  177. package/lib/RowExpandDialog/column-content/index.css +0 -44
  178. package/lib/RowExpandDialog/column-content/index.js +0 -50
  179. package/lib/RowExpandDialog/header/index.css +0 -31
  180. package/lib/RowExpandDialog/header/index.js +0 -55
  181. package/lib/RowExpandDialog/index.css +0 -24
  182. package/lib/RowExpandDialog/index.js +0 -252
  183. package/lib/RowExpandEditor/RowExpandAddBtn/index.css +0 -22
  184. package/lib/RowExpandEditor/RowExpandAddBtn/index.js +0 -24
  185. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.css +0 -18
  186. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.js +0 -43
  187. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.css +0 -5
  188. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.js +0 -232
  189. package/lib/RowExpandEditor/RowExpandDateEditor/index.js +0 -130
  190. package/lib/RowExpandEditor/RowExpandDepartmentEditor/index.js +0 -129
  191. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.css +0 -13
  192. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.js +0 -208
  193. package/lib/RowExpandEditor/RowExpandDurationEditor/index.js +0 -105
  194. package/lib/RowExpandEditor/RowExpandEmailEditor/index.css +0 -2
  195. package/lib/RowExpandEditor/RowExpandEmailEditor/index.js +0 -125
  196. package/lib/RowExpandEditor/RowExpandFileEditor/index.css +0 -1
  197. package/lib/RowExpandEditor/RowExpandFileEditor/index.js +0 -146
  198. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.css +0 -17
  199. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.js +0 -165
  200. package/lib/RowExpandEditor/RowExpandImageEditor/index.css +0 -6
  201. package/lib/RowExpandEditor/RowExpandImageEditor/index.js +0 -170
  202. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.css +0 -6
  203. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.js +0 -123
  204. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.css +0 -44
  205. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.js +0 -224
  206. package/lib/RowExpandEditor/RowExpandNumberEditor/index.js +0 -105
  207. package/lib/RowExpandEditor/RowExpandRateEditor/index.css +0 -13
  208. package/lib/RowExpandEditor/RowExpandRateEditor/index.js +0 -152
  209. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.css +0 -58
  210. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.js +0 -192
  211. package/lib/RowExpandEditor/RowExpandTextEditor/index.css +0 -4
  212. package/lib/RowExpandEditor/RowExpandTextEditor/index.js +0 -127
  213. package/lib/RowExpandEditor/RowExpandUrlEditor/index.css +0 -31
  214. package/lib/RowExpandEditor/RowExpandUrlEditor/index.js +0 -130
  215. package/lib/RowExpandEditor/constants.js +0 -44
  216. package/lib/RowExpandEditor/index.css +0 -0
  217. package/lib/RowExpandEditor/index.js +0 -32
  218. package/lib/RowExpandFormatter/RowExpandDepartmentFormatter/index.js +0 -27
  219. package/lib/RowExpandFormatter/RowExpandUrlFormatter/index.css +0 -1
  220. package/lib/RowExpandFormatter/constants.js +0 -60
  221. package/lib/UploadProgress/index.js +0 -38
  222. package/lib/UrlEditor/index.js +0 -62
  223. package/lib/common/editor-base.js +0 -53
  224. package/lib/constants/file.js +0 -96
  225. package/lib/constants/key-codes.js +0 -109
  226. package/lib/hooks/index.js +0 -16
  227. package/lib/locales/de.json +0 -167
  228. package/lib/locales/en.json +0 -167
  229. package/lib/locales/es.json +0 -167
  230. package/lib/locales/fr.json +0 -167
  231. package/lib/locales/pt.json +0 -167
  232. package/lib/locales/ru.json +0 -167
  233. package/lib/locales/zh-CN.json +0 -167
  234. package/lib/select-editor/pc-select-editor/index.css +0 -85
  235. package/lib/select-editor/pc-select-editor/index.js +0 -290
  236. package/lib/utils/cell-comparer.js +0 -35
  237. package/lib/utils/cell.js +0 -55
  238. package/lib/utils/column-utils.js +0 -25
  239. package/lib/utils/get-event-transfer.js +0 -75
  240. package/lib/utils/hotkey.js +0 -37
  241. package/lib/utils/object-utils.js +0 -61
  242. /package/lib/CollaboratorEditor/{mb-collaborator-editor → mb-collaborator-editor-popover}/index.css +0 -0
  243. /package/lib/CollaboratorEditor/{pc-collaborator-editor → pc-collaborator-editor-popover}/index.css +0 -0
  244. /package/lib/{RowExpandFormatter/RowExpandLinkFormatter → RowExpandLinkFormatter}/index.css +0 -0
  245. /package/lib/{RowExpandFormatter/RowExpandLinkFormatter → RowExpandLinkFormatter}/value-display-utils.js +0 -0
  246. /package/lib/{RowExpandFormatter/RowExpandRateFormatter → RowExpandRateFormatter}/index.js +0 -0
  247. /package/lib/select-editor/{mb-select-editor → mb-select-editor-popover}/index.css +0 -0
@@ -1,170 +0,0 @@
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 _toaster = _interopRequireDefault(require("../../toaster"));
10
- var _utils = require("../../utils/utils");
11
- var _participants = _interopRequireDefault(require("./participants"));
12
- var _input = _interopRequireDefault(require("./input"));
13
- var _btns = _interopRequireDefault(require("./btns"));
14
- require("./index.css");
15
- class Footer extends _react.default.Component {
16
- constructor(_props) {
17
- super(_props);
18
- this.initParticipants = props => {
19
- const {
20
- row,
21
- collaborators
22
- } = props;
23
- console.log(props);
24
- if (row._participants && Array.isArray(row._participants)) {
25
- let rowParticipants = row._participants.filter(Boolean);
26
- rowParticipants = rowParticipants.filter(participant => {
27
- const email = typeof participant === 'string' ? participant : participant.email;
28
- return !!collaborators.find(collaborator => collaborator.email === email);
29
- });
30
- this.setState({
31
- participants: rowParticipants
32
- });
33
- return;
34
- }
35
- this.setState({
36
- participants: []
37
- });
38
- };
39
- this.updateParticipants = participantList => {
40
- this.setState({
41
- participants: participantList
42
- }, () => {
43
- this.props.onChangeParticipants && this.props.onChangeParticipants(participantList);
44
- });
45
- };
46
- this.addParticipant = email => {
47
- if (!email) return;
48
- const {
49
- participants
50
- } = this.state;
51
- const {
52
- collaborators
53
- } = this.props;
54
- const isExist = participants.some(participant => participant.email === email);
55
- if (isExist) return;
56
- let newParticipantList = participants.slice(0);
57
- let newParticipant = collaborators.find(collaborator => collaborator.email === email);
58
- newParticipantList.push(newParticipant);
59
- this.updateParticipants(newParticipantList);
60
- };
61
- this.convertComment = value => {
62
- let regex = /<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]*?>/g;
63
- let match;
64
- let start = 0;
65
- let newValue = '';
66
- while ((match = regex.exec(value)) !== null) {
67
- let notificationName = "".concat(match[1]);
68
- let substr = value.substring(start, match.index);
69
- start = regex.lastIndex;
70
- newValue += substr + notificationName;
71
- }
72
- if (start < value.length) {
73
- newValue += value.slice(start);
74
- }
75
- return newValue;
76
- };
77
- this.updateAddState = isAdding => {
78
- this.setState({
79
- isAdding
80
- });
81
- };
82
- this.handleError = error => {
83
- let errMsg = (0, _utils.getErrorMsg)(error, true);
84
- if (!error.response || error.response.status !== 403) {
85
- _toaster.default.danger(this.props.t(errMsg));
86
- }
87
- };
88
- this.addComment = comment => {
89
- this.setState({
90
- isAdding: true
91
- }, () => {
92
- this.props.addComment(comment, {
93
- successCallback: () => {
94
- this.commentInputRef.setCommentInputValue();
95
- this.updateAddState(false);
96
- },
97
- failCallback: error => {
98
- this.handleError(error);
99
- this.updateAddState(false);
100
- }
101
- });
102
- });
103
- };
104
- this.onSubmit = () => {
105
- const commentValue = this.commentInputRef.getCommentInputValue();
106
- const comment = this.convertComment(commentValue);
107
- if (!comment.trim()) return;
108
- this.addComment(comment);
109
- const {
110
- username
111
- } = window.dtable;
112
- this.addParticipant(username);
113
- };
114
- this.onInsertElement = (content, nodeType) => {
115
- this.commentInputRef.onInsertElement(content, nodeType);
116
- };
117
- this.state = {
118
- isAdding: false,
119
- participants: []
120
- };
121
- this.commentInputRef = null;
122
- }
123
- componentDidMount() {
124
- this.initParticipants(this.props);
125
- }
126
- UNSAFE_componentWillReceiveProps(nextProps) {
127
- var _this$props$row, _nextProps$row;
128
- if (((_this$props$row = this.props.row) === null || _this$props$row === void 0 ? void 0 : _this$props$row._id) !== ((_nextProps$row = nextProps.row) === null || _nextProps$row === void 0 ? void 0 : _nextProps$row._id)) {
129
- this.initParticipants(nextProps);
130
- }
131
- }
132
- render() {
133
- const {
134
- isAdding,
135
- participants
136
- } = this.state;
137
- const {
138
- collaborators
139
- } = this.props;
140
- const canUpdateParticipants = Boolean(this.props.onChangeParticipants);
141
- return /*#__PURE__*/_react.default.createElement("div", {
142
- className: "dtable-ui-comments-footer"
143
- }, /*#__PURE__*/_react.default.createElement(_participants.default, {
144
- canUpdate: canUpdateParticipants,
145
- participants: participants,
146
- collaborators: collaborators,
147
- showIconTip: true,
148
- onChange: this.updateParticipants
149
- }), /*#__PURE__*/_react.default.createElement(_input.default, {
150
- ref: ref => this.commentInputRef = ref,
151
- collaborators: collaborators,
152
- onSubmit: this.onSubmit,
153
- uploadFile: this.props.uploadFile,
154
- addParticipant: this.addParticipant,
155
- onInputFocus: this.props.onInputFocus,
156
- onInputBlur: this.props.onInputBlur,
157
- autoFocusInput: this.props.autoFocusInput,
158
- canUpdateParticipants: canUpdateParticipants
159
- }), /*#__PURE__*/_react.default.createElement(_btns.default, {
160
- isAdding: isAdding,
161
- canUpdateParticipants: canUpdateParticipants,
162
- collaborators: collaborators,
163
- uploadFile: this.props.uploadFile,
164
- onInsertElement: this.onInsertElement,
165
- onSubmit: this.onSubmit,
166
- addParticipant: this.addParticipant
167
- }));
168
- }
169
- }
170
- var _default = exports.default = Footer;
@@ -1,52 +0,0 @@
1
- .dtable-ui-comments-footer .dtable-ui-comment-input {
2
- background-color: #fff;
3
- height: 90px;
4
- overflow: auto;
5
- margin: 0px;
6
- padding: 9px;
7
- min-height: 90px;
8
- border: 1px solid #e6e6dd;
9
- border-bottom: none;
10
- border-radius: 5px 5px 0px 0px;
11
- white-space: pre-wrap;
12
- overflow-wrap: break-word;
13
- font-size: 14px;
14
- }
15
-
16
- .dtable-ui-comments-footer .dtable-ui-comment-input.dtable-ui-comment-input-archive {
17
- height: 130px;
18
- }
19
-
20
- .dtable-ui-comments-footer .dtable-ui-comment-input:empty::before {
21
- content: attr(placeholder);
22
- color: #868E96;
23
- }
24
-
25
- .dtable-ui-comments-footer .dtable-ui-comment-input .image-container {
26
- display: inline-block;
27
- cursor: pointer;
28
- }
29
-
30
- .dtable-ui-comments-footer .dtable-ui-comment-caret-list {
31
- background: #fff;
32
- position: absolute;
33
- padding: 10px 0;
34
- max-height: 200px;
35
- overflow: auto;
36
- min-width: 150px;
37
- /* higher than row expand */
38
- z-index: 1049;
39
- border-radius: 5px;
40
- border: 1px solid #ededed;
41
- max-width: 200px;
42
- }
43
-
44
- .dtable-ui-comments-footer .dtable-ui-comment-caret-list .comment-participant-item {
45
- padding: 5px 0;
46
- }
47
-
48
- .dtable-ui-comments-footer .dtable-ui-comment-caret-list .comment-participant-item.active,
49
- .dtable-ui-comments-footer .dtable-ui-comment-caret-list .comment-participant-item:hover {
50
- background: #f5f5f5;
51
- cursor: pointer;
52
- }
@@ -1,448 +0,0 @@
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 _classnames = _interopRequireDefault(require("classnames"));
11
- var _dtableUtils = require("dtable-utils");
12
- var _ModalPortal = _interopRequireDefault(require("../../../ModalPortal"));
13
- var _utils = require("../../utils");
14
- var _ImagePreviewerLightbox = _interopRequireDefault(require("../../../ImagePreviewerLightbox"));
15
- var _FileUploader = _interopRequireDefault(require("../../../FileUploader"));
16
- var _constants = require("../../../constants");
17
- var _hotkey = require("../../../utils/hotkey");
18
- var _participant = _interopRequireDefault(require("./participant"));
19
- var _lang = require("../../../lang");
20
- require("./index.css");
21
- const FONT_SIZE_WIDTH = 15;
22
- const PADDING_WIDTH = 9;
23
- const LINE_HEIGHT = 22;
24
- const POPOVER_PADDING_HEIGHT = 10;
25
- const DOWN = 'down';
26
- const UP = 'up';
27
- class Input extends _react.default.Component {
28
- constructor(props) {
29
- super(props);
30
- this.hidePopover = event => {
31
- if (this.commentPopoverRef && event && !this.commentPopoverRef.contains(event.target)) {
32
- this.onHidePopover();
33
- }
34
- };
35
- this.onHidePopover = () => {
36
- if (this.state.filteredCollaborators.length > 0) {
37
- this.setState({
38
- filteredCollaborators: [],
39
- activeCollaboratorIndex: 0
40
- });
41
- }
42
- };
43
- this.setPopoverPosition = () => {
44
- const {
45
- caretPosition
46
- } = this.state;
47
- let {
48
- right,
49
- left
50
- } = this.commentRef.getBoundingClientRect();
51
- this.commentPopoverRef.style.left = "".concat(caretPosition.x + FONT_SIZE_WIDTH, "px");
52
- this.commentPopoverRef.style.top = "".concat(caretPosition.y - this.commentPopoverRef.offsetHeight, "px");
53
- if (caretPosition.x + FONT_SIZE_WIDTH > right - PADDING_WIDTH) {
54
- // is last code
55
- this.commentPopoverRef.style.left = "".concat(left + PADDING_WIDTH + FONT_SIZE_WIDTH, "px");
56
- this.commentPopoverRef.style.top = "".concat(caretPosition.y - this.commentPopoverRef.offsetHeight + LINE_HEIGHT, "px");
57
- }
58
- if (caretPosition.x + FONT_SIZE_WIDTH + this.commentPopoverRef.offsetWidth > document.body.clientWidth) {
59
- this.commentPopoverRef.style.right = 0;
60
- this.commentPopoverRef.style.left = '';
61
- }
62
- };
63
- this.onKeyDown = event => {
64
- if ((0, _hotkey.isModZ)(event)) {
65
- this.onHidePopover();
66
- event.preventDefault();
67
- event.stopPropagation();
68
- event.nativeEvent.stopImmediatePropagation();
69
- this.commentRef.innerHTML = '';
70
- return;
71
- } else if ((0, _hotkey.isShiftEnter)(event)) {
72
- return;
73
- } else if ((0, _hotkey.isModP)(event)) {
74
- this.commentRef.blur();
75
- }
76
- switch (event.keyCode) {
77
- case _constants.KeyCodes.DownArrow:
78
- case _constants.KeyCodes.UpArrow:
79
- {
80
- event.stopPropagation();
81
- if (this.commentPopoverRef) {
82
- event.preventDefault();
83
- }
84
- break;
85
- }
86
- case _constants.KeyCodes.Enter:
87
- {
88
- event.preventDefault();
89
-
90
- // exec select collaborator operation.
91
- if (this.state.filteredCollaborators.length > 0) {
92
- break;
93
- }
94
- this.props.onSubmit();
95
- break;
96
- }
97
- default:
98
- {
99
- break;
100
- }
101
- }
102
- };
103
- this.onFocus = () => {
104
- this.props.onInputFocus && this.props.onInputFocus();
105
- };
106
- this.onBlur = () => {
107
- this.props.onInputBlur && this.props.onInputBlur();
108
- };
109
- this.setScrollTop = (offsetTop, itemOffsetHeight, mouseDownType) => {
110
- let {
111
- offsetHeight,
112
- scrollTop
113
- } = this.commentPopoverRef;
114
- if (mouseDownType === DOWN) {
115
- if (offsetTop + itemOffsetHeight - scrollTop - offsetHeight + POPOVER_PADDING_HEIGHT > 0) {
116
- let top = offsetTop + itemOffsetHeight - offsetHeight + POPOVER_PADDING_HEIGHT;
117
- this.commentPopoverRef.scrollTop = top;
118
- }
119
- }
120
- if (mouseDownType === UP) {
121
- if (offsetTop < scrollTop) {
122
- this.commentPopoverRef.scrollTop = offsetTop - POPOVER_PADDING_HEIGHT;
123
- }
124
- }
125
- };
126
- this.setCommentInputValue = () => {
127
- this.commentRef.innerHTML = '';
128
- };
129
- this.getCommentInputValue = () => {
130
- return this.commentRef.innerHTML;
131
- };
132
- this.onInsertElement = (content, nodeType) => {
133
- const selection = window.getSelection();
134
- let {
135
- range
136
- } = this.state;
137
- let newRange = this.commentUtilities.onInsertElement({
138
- selection,
139
- range,
140
- content,
141
- nodeType,
142
- commentRef: this.commentRef
143
- });
144
- this.setState({
145
- range: newRange
146
- });
147
- };
148
- this.createHtmlElement = (selection, range, content, nodeType) => {
149
- let spanNode1;
150
- let spanNode2;
151
- let imageContainer;
152
- if (nodeType === 'image') {
153
- spanNode1 = document.createElement('div');
154
- spanNode1.className = 'image-container';
155
- spanNode1.contentEditable = 'false';
156
- imageContainer = document.createElement('img');
157
- imageContainer.src = content;
158
- imageContainer.height = 60;
159
- spanNode1.appendChild(imageContainer);
160
- spanNode2 = document.createElement('span');
161
- spanNode2.innerHTML = ' ';
162
- }
163
- if (nodeType === 'collaborator') {
164
- spanNode1 = document.createElement('span');
165
- spanNode2 = document.createElement('span');
166
- spanNode1.className = 'at-text';
167
- spanNode1.contentEditable = 'false';
168
- spanNode1.innerHTML = "@".concat(content.name);
169
- spanNode2.innerHTML = ' ';
170
- }
171
- let frag = document.createDocumentFragment();
172
- let node;
173
- let lastNode;
174
- frag.appendChild(spanNode1);
175
- while (node = spanNode2.firstChild) {
176
- lastNode = frag.appendChild(node);
177
- }
178
- if (!range) {
179
- this.commentRef.appendChild(frag);
180
- range = selection.getRangeAt(0);
181
- } else {
182
- range.insertNode(frag);
183
- }
184
- if (lastNode) {
185
- range = range.cloneRange();
186
- range.setStartAfter(lastNode);
187
- range.collapse(true);
188
- selection.removeAllRanges();
189
- selection.addRange(range);
190
- }
191
- this.setState({
192
- range: selection.getRangeAt(0)
193
- });
194
- };
195
- this.onSelectCollaborator = collaborator => {
196
- const selection = window.getSelection();
197
- let {
198
- range
199
- } = this.state;
200
- let callBack = () => {
201
- this.onHidePopover();
202
- this.props.addParticipant(collaborator.email);
203
- };
204
- let newRange = this.commentUtilities.onSelectParticipant({
205
- selection,
206
- range,
207
- participant: collaborator,
208
- callBack,
209
- commentRef: this.commentRef
210
- });
211
- this.setState({
212
- range: newRange
213
- });
214
- };
215
- this.onPaste = event => {
216
- let _this = this;
217
- let callBack = files => {
218
- _this.uploaderFileRef.handleFilesChange(files);
219
- };
220
- this.commentUtilities.onPaste(event, callBack);
221
- };
222
- this.onFileUploadSuccess = uploadFileMessage => {
223
- this.onInsertElement(uploadFileMessage.url, 'image');
224
- };
225
- this.handleImageZoom = event => {
226
- event.persist();
227
- if (event.target.tagName === 'IMG') {
228
- let imageUrl = event.target.src;
229
- let imageTagList = this.commentRef.getElementsByTagName('img');
230
- let imageUrlList = [];
231
- for (let i = 0; i < imageTagList.length; i++) {
232
- imageUrlList.push(imageTagList[i].src);
233
- }
234
- this.setState({
235
- imageUrlList: imageUrlList,
236
- largeImageIndex: imageUrlList.findIndex(imageItemUrl => imageItemUrl === imageUrl)
237
- });
238
- }
239
- };
240
- this.moveNext = () => {
241
- let images = this.state.imageUrlList;
242
- this.setState(prevState => ({
243
- largeImageIndex: (prevState.largeImageIndex + 1) % images.length
244
- }));
245
- };
246
- this.movePrev = () => {
247
- let images = this.state.imageUrlList;
248
- this.setState(prevState => ({
249
- largeImageIndex: (prevState.largeImageIndex + images.length - 1) % images.length
250
- }));
251
- };
252
- this.hideLargeImage = () => {
253
- this.setState({
254
- largeImageIndex: -1,
255
- imageUrlList: []
256
- });
257
- };
258
- this.onKeyUp = event => {
259
- const selection = window.getSelection();
260
- this.setState({
261
- range: selection.getRangeAt(0)
262
- });
263
- if (event.keyCode === _constants.KeyCodes.DownArrow) {
264
- return this.handleSelectingCollaborator(event, DOWN);
265
- }
266
- if (event.keyCode === _constants.KeyCodes.UpArrow) {
267
- return this.handleSelectingCollaborator(event, UP);
268
- }
269
- if (event.keyCode === _constants.KeyCodes.Enter) {
270
- return this.handleSelectCollaborator();
271
- }
272
- this.handleMentions(event);
273
- };
274
- this.onMouseUp = () => {
275
- const selection = window.getSelection();
276
- this.setState({
277
- range: selection.getRangeAt(0)
278
- });
279
- };
280
- this.checkMentionOperation = event => {
281
- const {
282
- keyCode
283
- } = event;
284
- const {
285
- Escape,
286
- LeftArrow,
287
- RightArrow
288
- } = _constants.KeyCodes;
289
- if (keyCode === Escape || keyCode === LeftArrow || keyCode === RightArrow) {
290
- return false;
291
- }
292
- return true;
293
- };
294
- this.handleMentions = event => {
295
- if (this.props.isArchive) {
296
- return;
297
- }
298
- const isValidOperation = this.checkMentionOperation(event);
299
- if (!isValidOperation) {
300
- return this.onHidePopover();
301
- }
302
- const selection = window.getSelection();
303
- const {
304
- collaborators
305
- } = this.props;
306
- let filteredCollaborators = [];
307
- const {
308
- isCollapsed,
309
- anchorNode,
310
- anchorOffset
311
- } = selection;
312
- if (!isCollapsed || !anchorNode || !anchorNode.data) {
313
- return this.onHidePopover();
314
- }
315
- const text = anchorNode.data;
316
- const atIndex = this.commentUtilities.getAtIndexWithAnchorPosition(anchorOffset, text);
317
- if (atIndex === -1) {
318
- return this.onHidePopover();
319
- }
320
- if (atIndex === 0 || text[atIndex - 1] === ' ') {
321
- if (atIndex === anchorOffset - 1) {
322
- filteredCollaborators = [...collaborators];
323
- } else {
324
- const searchingText = text.substring(atIndex + 1);
325
- if (searchingText) {
326
- filteredCollaborators = (0, _dtableUtils.searchCollaborators)(collaborators, searchingText);
327
- }
328
- }
329
- }
330
- if (filteredCollaborators.length === 0) {
331
- return this.onHidePopover();
332
- }
333
- this.setState({
334
- filteredCollaborators,
335
- activeCollaboratorIndex: 0,
336
- caretPosition: (0, _utils.getSelectionCoords)(),
337
- range: selection.getRangeAt(0)
338
- }, () => {
339
- this.setPopoverPosition();
340
- });
341
- };
342
- this.handleSelectingCollaborator = (event, direction) => {
343
- event.stopPropagation();
344
- const {
345
- filteredCollaborators,
346
- activeCollaboratorIndex
347
- } = this.state;
348
- const collaboratorsLen = filteredCollaborators.length;
349
- if (collaboratorsLen === 0) {
350
- return;
351
- }
352
- let nextActiveCollaboratorIndex = activeCollaboratorIndex;
353
- if (direction === DOWN) {
354
- nextActiveCollaboratorIndex++;
355
- if (nextActiveCollaboratorIndex >= collaboratorsLen) {
356
- nextActiveCollaboratorIndex = 0;
357
- }
358
- } else {
359
- nextActiveCollaboratorIndex--;
360
- if (nextActiveCollaboratorIndex < 0) {
361
- nextActiveCollaboratorIndex = collaboratorsLen - 1;
362
- }
363
- }
364
- this.setState({
365
- activeCollaboratorIndex: nextActiveCollaboratorIndex
366
- });
367
- };
368
- this.handleSelectCollaborator = () => {
369
- const {
370
- filteredCollaborators,
371
- activeCollaboratorIndex
372
- } = this.state;
373
- if (filteredCollaborators.length === 0) {
374
- return;
375
- }
376
- this.onSelectCollaborator(filteredCollaborators[activeCollaboratorIndex]);
377
- };
378
- this.state = {
379
- filteredCollaborators: [],
380
- caretPosition: {},
381
- range: null,
382
- imageUrlList: [],
383
- activeCollaboratorIndex: 0,
384
- largeImageIndex: -1
385
- };
386
- this.commentUtilities = new _utils.Utilities();
387
- }
388
- componentDidMount() {
389
- document.addEventListener('mousedown', this.hidePopover);
390
- if (this.props.autoFocusInput) {
391
- this.commentRef.focus();
392
- }
393
- }
394
- componentWillUnmount() {
395
- document.removeEventListener('mousedown', this.hidePopover);
396
- }
397
- render() {
398
- const {
399
- api
400
- } = this.props;
401
- const {
402
- imageUrlList,
403
- largeImageIndex,
404
- filteredCollaborators,
405
- activeCollaboratorIndex
406
- } = this.state;
407
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
408
- className: (0, _classnames.default)('dtable-ui-comment-input', {
409
- 'dtable-ui-comment-input-archive': !(api !== null && api !== void 0 && api.add)
410
- }),
411
- ref: ref => this.commentRef = ref,
412
- onKeyDown: this.onKeyDown,
413
- onFocus: this.onFocus,
414
- onBlur: this.onBlur,
415
- onKeyUp: this.onKeyUp,
416
- onMouseUp: this.onMouseUp,
417
- onPaste: this.onPaste,
418
- placeholder: (0, _lang.getLocale)('Add_comment'),
419
- onClick: this.handleImageZoom,
420
- tabIndex: -1,
421
- contentEditable: true
422
- }), filteredCollaborators.length > 0 && /*#__PURE__*/_react.default.createElement(_ModalPortal.default, null, /*#__PURE__*/_react.default.createElement("div", {
423
- className: "dtable-ui-comment-caret-list",
424
- ref: ref => this.commentPopoverRef = ref
425
- }, filteredCollaborators.map((participant, i) => {
426
- return /*#__PURE__*/_react.default.createElement(_participant.default, {
427
- key: participant.email,
428
- index: i,
429
- activeIndex: activeCollaboratorIndex,
430
- participant: participant,
431
- setScrollTop: this.setScrollTop,
432
- onSelect: this.onSelectCollaborator.bind(this, participant)
433
- });
434
- }))), largeImageIndex > -1 && /*#__PURE__*/_react.default.createElement(_ImagePreviewerLightbox.default, {
435
- imageItems: imageUrlList,
436
- imageIndex: this.state.largeImageIndex,
437
- closeImagePopup: this.hideLargeImage,
438
- moveToPrevImage: this.movePrev,
439
- moveToNextImage: this.moveNext
440
- }), /*#__PURE__*/_react.default.createElement(_FileUploader.default, {
441
- className: "dtable-ui-comment-paste-uploader",
442
- ref: ref => this.uploaderFileRef = ref,
443
- onFileUploadSuccess: this.onFileUploadSuccess,
444
- uploadFile: this.props.uploadFile
445
- }));
446
- }
447
- }
448
- var _default = exports.default = Input;
File without changes