dtable-ui-component 6.0.3 → 6.0.4

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 (262) hide show
  1. package/lib/ButtonFormatter/index.js +8 -2
  2. package/lib/CheckboxEditor/index.css +8 -20
  3. package/lib/CheckboxEditor/index.js +98 -35
  4. package/lib/CheckboxFormatter/index.css +5 -0
  5. package/lib/CheckboxFormatter/index.js +9 -15
  6. package/lib/CollaboratorEditor/index.css +12 -35
  7. package/lib/CollaboratorEditor/index.js +18 -212
  8. package/lib/CollaboratorEditor/{mb-collaborator-editor-popover → mb-collaborator-editor}/index.js +27 -30
  9. package/lib/CollaboratorEditor/pc-collaborator-editor/index.js +257 -0
  10. package/lib/CollaboratorItem/index.css +7 -1
  11. package/lib/CollaboratorItem/index.js +6 -2
  12. package/lib/Comment/body/comment.js +190 -0
  13. package/lib/Comment/body/index.css +95 -0
  14. package/lib/Comment/body/index.js +32 -0
  15. package/lib/Comment/footer/btns/index.css +40 -0
  16. package/lib/Comment/footer/btns/index.js +113 -0
  17. package/lib/Comment/footer/index.css +157 -0
  18. package/lib/Comment/footer/index.js +169 -0
  19. package/lib/Comment/footer/input/index.css +52 -0
  20. package/lib/Comment/footer/input/index.js +448 -0
  21. package/lib/Comment/footer/input/participant/index.css +0 -0
  22. package/lib/Comment/footer/input/participant/index.js +53 -0
  23. package/lib/Comment/footer/participants/index.css +22 -0
  24. package/lib/Comment/footer/participants/index.js +68 -0
  25. package/lib/Comment/footer/participants/participant/index.css +5 -0
  26. package/lib/Comment/footer/participants/participant/index.js +32 -0
  27. package/lib/Comment/footer/participants/participant-select/index.css +104 -0
  28. package/lib/Comment/footer/participants/participant-select/index.js +182 -0
  29. package/lib/Comment/index.css +19 -0
  30. package/lib/Comment/index.js +304 -0
  31. package/lib/Comment/model.js +25 -0
  32. package/lib/Comment/utils/common.js +62 -0
  33. package/lib/Comment/utils/index.js +27 -0
  34. package/lib/Comment/utils/utilities.js +176 -0
  35. package/lib/DTableColorPicker/index.css +1 -1
  36. package/lib/DTableCustomizeSelect/index.js +2 -2
  37. package/lib/DTableFiltersPopover/utils/index.js +1 -7
  38. package/lib/DTableFiltersPopover/widgets/filter-calendar.js +2 -2
  39. package/lib/DTableGroupSelect/index.js +3 -3
  40. package/lib/DTableSelect/index.js +3 -1
  41. package/lib/DateEditor/index.js +14 -51
  42. package/lib/DateEditor/pc-date-editor-popover.js +149 -12
  43. package/lib/{common/delete-tip.js → DeleteTip/index.js} +12 -16
  44. package/lib/Department-editor/department-single-select.js +1 -1
  45. package/lib/Department-editor/index.js +3 -4
  46. package/lib/DepartmentSingleSelectFormatter/index.js +3 -2
  47. package/lib/DigitalSignEditor/constants.js +7 -0
  48. package/lib/DigitalSignEditor/index.css +69 -0
  49. package/lib/DigitalSignEditor/index.js +182 -0
  50. package/lib/DigitalSignEditor/service.js +39 -0
  51. package/lib/DigitalSignEditor/signature-board/index.css +35 -0
  52. package/lib/DigitalSignEditor/signature-board/index.js +135 -0
  53. package/lib/DigitalSignEditor/signature-board/signature-tool.js +396 -0
  54. package/lib/DigitalSignEditor/utils.js +29 -0
  55. package/lib/DurationEditor/index.js +110 -0
  56. package/lib/EmailEditor/index.js +58 -0
  57. package/lib/FileEditor/addition-previewer/index.css +1 -0
  58. package/lib/FileEditor/addition-previewer/index.js +52 -0
  59. package/lib/FileEditor/addition-previewer/local-file-addition/index.css +1 -0
  60. package/lib/FileEditor/addition-previewer/local-file-addition/index.js +252 -0
  61. package/lib/FileEditor/constants.js +7 -0
  62. package/lib/FileEditor/files-previewer/file-previewer/dropdown-menu.js +74 -0
  63. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.css +5 -0
  64. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.js +77 -0
  65. package/lib/FileEditor/files-previewer/file-previewer/index.css +88 -0
  66. package/lib/FileEditor/files-previewer/file-previewer/index.js +167 -0
  67. package/lib/FileEditor/files-previewer/index.css +56 -0
  68. package/lib/FileEditor/files-previewer/index.js +277 -0
  69. package/lib/FileEditor/index.css +6 -0
  70. package/lib/FileEditor/index.js +258 -11
  71. package/lib/FileEditor/utils.js +22 -0
  72. package/lib/FileItemFormatter/index.js +19 -20
  73. package/lib/FileUploader/index.css +9 -0
  74. package/lib/FileUploader/index.js +268 -14
  75. package/lib/FormulaFormatter/cell-value-validator.js +17 -17
  76. package/lib/FormulaFormatter/index.js +2 -1
  77. package/lib/FormulaFormatter/utils.js +0 -31
  78. package/lib/GeolocationEditor/country-editor.js +319 -0
  79. package/lib/GeolocationEditor/index.css +641 -0
  80. package/lib/GeolocationEditor/index.js +240 -0
  81. package/lib/GeolocationEditor/location-editor.js +368 -0
  82. package/lib/GeolocationEditor/map-editor/index.js +456 -0
  83. package/lib/GeolocationEditor/map-editor/large-editor/index.css +137 -0
  84. package/lib/GeolocationEditor/map-editor/large-editor/index.js +461 -0
  85. package/lib/GeolocationEditor/map-editor-utils.js +153 -0
  86. package/lib/GeolocationEditor/map-selection-editor/index.js +455 -0
  87. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.css +1 -0
  88. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.js +447 -0
  89. package/lib/GeolocationEditor/parse-geolocation.js +282 -0
  90. package/lib/GeolocationEditor/province-city-editor.js +292 -0
  91. package/lib/GeolocationEditor/province-editor.js +226 -0
  92. package/lib/GeolocationEditor/selector-header-item.js +28 -0
  93. package/lib/GeolocationEditor/selector-list.js +33 -0
  94. package/lib/ImageEditor/addition-previewer/image-link/index.css +45 -0
  95. package/lib/ImageEditor/addition-previewer/image-link/index.js +73 -0
  96. package/lib/ImageEditor/addition-previewer/index.css +106 -0
  97. package/lib/ImageEditor/addition-previewer/index.js +63 -0
  98. package/lib/ImageEditor/addition-previewer/local-image-addition/index.css +125 -0
  99. package/lib/ImageEditor/addition-previewer/local-image-addition/index.js +254 -0
  100. package/lib/ImageEditor/constants.js +7 -0
  101. package/lib/ImageEditor/images-previewer/image-preview/index.css +59 -0
  102. package/lib/ImageEditor/images-previewer/image-preview/index.js +155 -0
  103. package/lib/ImageEditor/images-previewer/index.css +18 -0
  104. package/lib/ImageEditor/images-previewer/index.js +140 -0
  105. package/lib/ImageEditor/index.css +24 -0
  106. package/lib/ImageEditor/index.js +194 -0
  107. package/lib/ImageFormatter/images-lazy-load.js +4 -2
  108. package/lib/ImageFormatter/index.js +8 -3
  109. package/lib/ImageThumbnail/index.css +20 -0
  110. package/lib/ImageThumbnail/index.js +137 -0
  111. package/lib/LinkEditor/index.js +2 -3
  112. package/lib/LinkEditor/pc-link-editor-popover/index.js +1 -1
  113. package/lib/MultipleSelectEditor/index.js +16 -177
  114. package/lib/NumberEditor/index.js +63 -77
  115. package/lib/RoleStatusEditor/index.css +0 -2
  116. package/lib/RowExpandDialog/body/index.css +21 -0
  117. package/lib/RowExpandDialog/body/index.js +262 -0
  118. package/lib/RowExpandDialog/column-content/index.css +48 -0
  119. package/lib/RowExpandDialog/column-content/index.js +50 -0
  120. package/lib/RowExpandDialog/header/index.css +31 -0
  121. package/lib/RowExpandDialog/header/index.js +55 -0
  122. package/lib/RowExpandDialog/index.css +28 -0
  123. package/lib/RowExpandDialog/index.js +237 -0
  124. package/lib/RowExpandEditor/RowExpandAddBtn/index.css +22 -0
  125. package/lib/RowExpandEditor/RowExpandAddBtn/index.js +24 -0
  126. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.css +18 -0
  127. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.js +43 -0
  128. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.css +5 -0
  129. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.js +232 -0
  130. package/lib/RowExpandEditor/RowExpandDateEditor/index.js +130 -0
  131. package/lib/RowExpandEditor/RowExpandDepartmentEditor/index.js +104 -0
  132. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.css +13 -0
  133. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.js +208 -0
  134. package/lib/RowExpandEditor/RowExpandDurationEditor/index.js +105 -0
  135. package/lib/RowExpandEditor/RowExpandEmailEditor/index.css +2 -0
  136. package/lib/RowExpandEditor/RowExpandEmailEditor/index.js +125 -0
  137. package/lib/RowExpandEditor/RowExpandFileEditor/index.css +1 -0
  138. package/lib/RowExpandEditor/RowExpandFileEditor/index.js +148 -0
  139. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.css +17 -0
  140. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.js +165 -0
  141. package/lib/RowExpandEditor/RowExpandImageEditor/index.css +11 -0
  142. package/lib/RowExpandEditor/RowExpandImageEditor/index.js +170 -0
  143. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.css +6 -0
  144. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.js +123 -0
  145. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.css +44 -0
  146. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.js +247 -0
  147. package/lib/RowExpandEditor/RowExpandNumberEditor/index.js +105 -0
  148. package/lib/RowExpandEditor/RowExpandRateEditor/index.css +13 -0
  149. package/lib/RowExpandEditor/RowExpandRateEditor/index.js +152 -0
  150. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.css +58 -0
  151. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.js +206 -0
  152. package/lib/RowExpandEditor/RowExpandTextEditor/index.css +4 -0
  153. package/lib/RowExpandEditor/RowExpandTextEditor/index.js +127 -0
  154. package/lib/RowExpandEditor/RowExpandUrlEditor/index.css +31 -0
  155. package/lib/RowExpandEditor/RowExpandUrlEditor/index.js +130 -0
  156. package/lib/RowExpandEditor/constants.js +44 -0
  157. package/lib/RowExpandEditor/index.css +0 -0
  158. package/lib/RowExpandEditor/index.js +32 -0
  159. package/lib/RowExpandFormatter/RowExpandDepartmentFormatter/index.js +27 -0
  160. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.css +1 -1
  161. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.js +1 -1
  162. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.css +6 -6
  163. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.js +3 -1
  164. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/row-expand-file-item-formatter.js +12 -13
  165. package/lib/{RowExpandFormulaFormatter → RowExpandFormatter/RowExpandFormulaFormatter}/index.js +11 -10
  166. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.css +6 -6
  167. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.js +1 -1
  168. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/row-expand-image-item-formatter.js +5 -5
  169. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/collaborator-item-formatter.js +1 -1
  170. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.css +2 -2
  171. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.js +20 -20
  172. package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.css +1 -1
  173. package/lib/RowExpandFormatter/RowExpandUrlFormatter/index.css +1 -0
  174. package/lib/{RowExpandUrlFormatter → RowExpandFormatter/RowExpandUrlFormatter}/index.js +4 -3
  175. package/lib/RowExpandFormatter/constants.js +61 -0
  176. package/lib/RowExpandFormatter/index.css +28 -3
  177. package/lib/RowExpandFormatter/index.js +113 -131
  178. package/lib/SimpleLongTextFormatter/widgets/longTextEditor.css +2 -2
  179. package/lib/SingleSelectEditor/index.js +16 -156
  180. package/lib/SvgIcon/index.css +11 -0
  181. package/lib/SvgIcon/index.js +29 -0
  182. package/lib/TextEditor/index.js +112 -42
  183. package/lib/UploadProgress/index.js +38 -0
  184. package/lib/UrlEditor/index.js +61 -0
  185. package/lib/common/editor-base.js +52 -0
  186. package/lib/constants/file.js +96 -0
  187. package/lib/constants/index.js +27 -15
  188. package/lib/constants/key-codes.js +109 -0
  189. package/lib/css/cell-editor.css +18 -2
  190. package/lib/formatterConfig/base-formatter-config.js +23 -23
  191. package/lib/formatterConfig/index.js +3 -3
  192. package/lib/hooks/index.js +16 -0
  193. package/lib/index.js +81 -46
  194. package/lib/lang/index.js +19 -16
  195. package/lib/locales/de.json +167 -0
  196. package/lib/locales/en.json +167 -0
  197. package/lib/locales/es.json +167 -0
  198. package/lib/locales/fr.json +167 -0
  199. package/lib/locales/pt.json +167 -0
  200. package/lib/locales/ru.json +167 -0
  201. package/lib/locales/zh-CN.json +167 -0
  202. package/lib/select-editor/index.js +6 -6
  203. package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.js +3 -3
  204. package/lib/select-editor/pc-select-editor/index.css +85 -0
  205. package/lib/select-editor/pc-select-editor/index.js +295 -0
  206. package/lib/toaster/toast.js +19 -15
  207. package/lib/utils/cell-comparer.js +35 -0
  208. package/lib/utils/cell.js +55 -0
  209. package/lib/utils/column-utils.js +25 -0
  210. package/lib/utils/editor-utils.js +1 -6
  211. package/lib/utils/get-event-transfer.js +75 -0
  212. package/lib/utils/hotkey.js +37 -0
  213. package/lib/utils/object-utils.js +61 -0
  214. package/lib/utils/url.js +127 -8
  215. package/lib/utils/utils.js +119 -2
  216. package/package.json +3 -2
  217. package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +0 -97
  218. package/lib/FileEditor/pc-files-addition/index.js +0 -1
  219. package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +0 -1
  220. package/lib/FileEditor/pc-files-preview/index.js +0 -1
  221. package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +0 -1
  222. package/lib/FileItemFormatter/assets/file/192/excel.png +0 -0
  223. package/lib/FileItemFormatter/assets/file/192/file.png +0 -0
  224. package/lib/FileItemFormatter/assets/file/192/music.png +0 -0
  225. package/lib/FileItemFormatter/assets/file/192/pdf.png +0 -0
  226. package/lib/FileItemFormatter/assets/file/192/pic.png +0 -0
  227. package/lib/FileItemFormatter/assets/file/192/ppt.png +0 -0
  228. package/lib/FileItemFormatter/assets/file/192/txt.png +0 -0
  229. package/lib/FileItemFormatter/assets/file/192/video.png +0 -0
  230. package/lib/FileItemFormatter/assets/file/192/word.png +0 -0
  231. package/lib/FileItemFormatter/assets/file/24/excel.png +0 -0
  232. package/lib/FileItemFormatter/assets/file/24/file.png +0 -0
  233. package/lib/FileItemFormatter/assets/file/24/music.png +0 -0
  234. package/lib/FileItemFormatter/assets/file/24/pdf.png +0 -0
  235. package/lib/FileItemFormatter/assets/file/24/pic.png +0 -0
  236. package/lib/FileItemFormatter/assets/file/24/ppt.png +0 -0
  237. package/lib/FileItemFormatter/assets/file/24/txt.png +0 -0
  238. package/lib/FileItemFormatter/assets/file/24/video.png +0 -0
  239. package/lib/FileItemFormatter/assets/file/24/word.png +0 -0
  240. package/lib/FileItemFormatter/assets/folder/folder-192.png +0 -0
  241. package/lib/FileItemFormatter/assets/folder/folder-24.png +0 -0
  242. package/lib/FileItemFormatter/utils.js +0 -99
  243. package/lib/MultipleSelectEditor/index.css +0 -9
  244. package/lib/RowExpandLinkFormatter/utils.js +0 -71
  245. package/lib/RowExpandUrlFormatter/index.css +0 -1
  246. package/lib/SingleSelectEditor/index.css +0 -14
  247. package/lib/common/modal-portal.js +0 -26
  248. package/lib/locals/de.js +0 -103
  249. package/lib/locals/en.js +0 -104
  250. package/lib/locals/es.js +0 -103
  251. package/lib/locals/fr.js +0 -103
  252. package/lib/locals/pt.js +0 -103
  253. package/lib/locals/ru.js +0 -103
  254. package/lib/locals/zh-CN.js +0 -104
  255. package/lib/select-editor/pc-select-editor-popover/index.css +0 -71
  256. package/lib/select-editor/pc-select-editor-popover/index.js +0 -122
  257. /package/lib/CollaboratorEditor/{mb-collaborator-editor-popover → mb-collaborator-editor}/index.css +0 -0
  258. /package/lib/CollaboratorEditor/{pc-collaborator-editor-popover → pc-collaborator-editor}/index.css +0 -0
  259. /package/lib/{common/delete-tip.css → DeleteTip/index.css} +0 -0
  260. /package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/value-display-utils.js +0 -0
  261. /package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.js +0 -0
  262. /package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.css +0 -0
@@ -29,16 +29,22 @@ class ButtonFormatter extends _react.default.Component {
29
29
  button_name
30
30
  } = data || {};
31
31
  const colorObj = _dtableUtils.SELECT_OPTION_COLORS.find(item => item.COLOR === button_color) || _dtableUtils.SELECT_OPTION_COLORS[0];
32
+ const color = colorObj.TEXT_COLOR === WHITE ? WHITE : '#666666';
32
33
  const btnStyle = {
33
34
  backgroundColor: colorObj.COLOR,
34
35
  borderColor: colorObj.BORDER_COLOR,
35
- color: colorObj.TEXT_COLOR === WHITE ? WHITE : '#666666'
36
+ color
36
37
  };
37
38
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("button", {
38
39
  className: (0, _classnames.default)('dtable-ui cell-formatter-container button-formatter', containerClassName),
39
40
  style: btnStyle,
40
41
  onClick: this.handleClick
41
- }, button_name));
42
+ }, /*#__PURE__*/_react.default.createElement("span", {
43
+ className: "text-truncate",
44
+ style: {
45
+ color
46
+ }
47
+ }, button_name)));
42
48
  }
43
49
  }
44
50
  var _default = exports.default = ButtonFormatter;
@@ -4,28 +4,16 @@
4
4
  height: 24px;
5
5
  }
6
6
 
7
- .dtable-ui-checkbox-editor .raw-checkbox {
8
- position: absolute;
9
- width: 100%;
10
- height: 100%;
11
- opacity: 0;
12
- }
13
-
14
- .dtable-ui-checkbox-editor .shown-checkbox {
15
- height: 100%;
16
- border: 2px solid #e0e0e0;
17
- border-radius: 3px;
18
- }
19
-
20
- .dtable-ui-checkbox-editor .raw-checkbox:focus + .shown-checkbox {
21
- border-color: #3b88fd;
22
- }
23
-
24
- .dtable-ui-checkbox-editor .shown-checkbox .dtable-icon-check-mark {
7
+ .dtable-ui-checkbox-editor .dtable-ui-checkbox-check-mark {
25
8
  display: flex;
26
9
  align-items: center;
27
10
  justify-content: center;
28
- font-size: 14px;
11
+ font-size: 16px;
12
+ font-weight: 600;
29
13
  color: #20c933;
30
- font-weight: 500;
14
+ }
15
+
16
+ .dtable-ui-checkbox-check-svg {
17
+ width: 16px;
18
+ height: 16px;
31
19
  }
@@ -1,64 +1,127 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
12
+ var _utils = require("../utils/utils");
13
+ var _constants = require("../constants");
9
14
  require("./index.css");
10
- class CheckboxEditor extends _react.default.Component {
15
+ class CheckboxEditor extends _react.Component {
11
16
  constructor(props) {
12
17
  super(props);
13
- this.onCommit = () => {
14
- let updated = {};
15
- let {
16
- column
18
+ this.onKeyDown = event => {
19
+ const {
20
+ isEditorShow,
21
+ readOnly
17
22
  } = this.props;
18
- updated[column.name] = this.state.value;
19
- this.props.onCommit(updated);
23
+ if (event.keyCode === _constants.KeyCodes.Enter && isEditorShow && !readOnly) {
24
+ this.setState({
25
+ value: !this.state.value
26
+ });
27
+ }
28
+ };
29
+ this.getValue = () => {
30
+ const {
31
+ value
32
+ } = this.state;
33
+ return value;
20
34
  };
21
- this.onChange = event => {
22
- if (this.props.isReadOnly) {
35
+ this.updateValue = value => {
36
+ if (value === this.state.value) {
23
37
  return;
24
38
  }
25
39
  this.setState({
26
- value: !this.state.value
40
+ value
41
+ });
42
+ };
43
+ this.onChangeCheckboxValue = event => {
44
+ if (event) {
45
+ event.stopPropagation();
46
+ event.nativeEvent.stopImmediatePropagation();
47
+ event.persist();
48
+ }
49
+ const {
50
+ value
51
+ } = this.state;
52
+ const newValue = !value;
53
+ this.setState({
54
+ value: newValue
27
55
  }, () => {
28
- this.onCommit();
56
+ if (this.props.onCommit) {
57
+ this.props.onCommit(event);
58
+ }
59
+ });
60
+ };
61
+ this.renderIcon = (symbol, color) => {
62
+ const className = (0, _classnames.default)('dtable-ui-checkbox-check-mark', {
63
+ 'dtable-ui-checkbox-check-svg': !(symbol !== null && symbol !== void 0 && symbol.startsWith('dtable-icon'))
64
+ });
65
+ if (symbol.startsWith('dtable-icon')) {
66
+ return /*#__PURE__*/_react.default.createElement("span", {
67
+ className: "dtable-font ".concat(symbol, " ").concat(className || ''),
68
+ style: {
69
+ color
70
+ }
71
+ });
72
+ }
73
+ return /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
74
+ className: className,
75
+ symbol: symbol,
76
+ color: color
29
77
  });
30
78
  };
31
79
  this.state = {
32
- value: props.value ? props.value : false
80
+ value: props.value || false
33
81
  };
34
82
  }
35
- render() {
83
+ componentDidMount() {
84
+ document.addEventListener('keydown', this.onKeyDown);
85
+ }
86
+ componentWillUnmount() {
87
+ document.removeEventListener('keydown', this.onKeyDown);
88
+ }
89
+ componentDidUpdate(prevProps) {
36
90
  const {
37
91
  value
38
- } = this.state;
92
+ } = this.props;
93
+ if (value !== prevProps.value) {
94
+ this.setState({
95
+ value
96
+ });
97
+ }
98
+ }
99
+ render() {
100
+ var _column$data;
39
101
  const {
40
- isReadOnly
102
+ className,
103
+ style,
104
+ column
41
105
  } = this.props;
42
- let style = {
43
- cursor: isReadOnly ? 'default' : 'pointer'
106
+ const {
107
+ value
108
+ } = this.state;
109
+ const checkboxProps = {
110
+ ...(!_utils.isMobile && {
111
+ onClick: this.onChangeCheckboxValue
112
+ }),
113
+ ...(_utils.isMobile && {
114
+ onTouchStart: this.onChangeCheckboxValue
115
+ })
44
116
  };
45
- return /*#__PURE__*/_react.default.createElement("div", {
46
- className: "dtable-ui-checkbox-editor",
47
- style: style
48
- }, /*#__PURE__*/_react.default.createElement("input", {
49
- type: "checkbox",
50
- className: "raw-checkbox",
51
- checked: value,
52
- onChange: this.onChange
53
- }), /*#__PURE__*/_react.default.createElement("div", {
54
- className: "shown-checkbox"
55
- }, value && /*#__PURE__*/_react.default.createElement("span", {
56
- className: "dtable-font dtable-icon-check-mark"
57
- })));
117
+ let checkboxStyle = column === null || column === void 0 ? void 0 : (_column$data = column.data) === null || _column$data === void 0 ? void 0 : _column$data.checkbox_style;
118
+ if (!checkboxStyle || Object.keys(checkboxStyle).length < 2) {
119
+ checkboxStyle = _constants.DEFAULT_CHECKBOX_MARK_STYLE;
120
+ }
121
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
122
+ className: (0, _classnames.default)('dtable-ui-checkbox-editor', className),
123
+ style: style || {}
124
+ }, checkboxProps), value && this.renderIcon(checkboxStyle.type, checkboxStyle.color));
58
125
  }
59
126
  }
60
- CheckboxEditor.defaultProps = {
61
- isReadOnly: false,
62
- value: false
63
- };
64
127
  var _default = exports.default = CheckboxEditor;
@@ -8,3 +8,8 @@
8
8
  font-size: 16px;
9
9
  font-weight: 600;
10
10
  }
11
+
12
+ .dtable-ui.checkbox-formatter .dtable-ui-checkbox-check-svg {
13
+ width: 16px;
14
+ height: 16px;
15
+ }
@@ -7,11 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
11
+ var _constants = require("../constants");
10
12
  require("./index.css");
11
- const DAFAULT_CHECKBOX_MARK_STYLE = {
12
- type: 'check',
13
- color: '#1DDD1D'
14
- };
15
13
  class CheckboxFormatter extends _react.default.PureComponent {
16
14
  render() {
17
15
  let {
@@ -20,11 +18,11 @@ class CheckboxFormatter extends _react.default.PureComponent {
20
18
  checkboxStyle
21
19
  } = this.props;
22
20
  if (!checkboxStyle || !('type' in checkboxStyle && 'color' in checkboxStyle)) {
23
- checkboxStyle = DAFAULT_CHECKBOX_MARK_STYLE;
21
+ checkboxStyle = _constants.DEFAULT_CHECKBOX_MARK_STYLE;
24
22
  }
25
23
  const currentValue = !!value;
26
- let classname = (0, _classnames.default)('dtable-ui cell-formatter-container checkbox-formatter d-flex align-items-center justify-content-center', containerClassName);
27
24
  if (!currentValue) return null;
25
+ const classname = (0, _classnames.default)('dtable-ui cell-formatter-container checkbox-formatter d-flex align-items-center justify-content-center', containerClassName);
28
26
  return /*#__PURE__*/_react.default.createElement("div", {
29
27
  className: classname
30
28
  }, checkboxStyle.type.startsWith('dtable-icon') ? /*#__PURE__*/_react.default.createElement("span", {
@@ -32,15 +30,11 @@ class CheckboxFormatter extends _react.default.PureComponent {
32
30
  style: {
33
31
  color: checkboxStyle.color
34
32
  }
35
- }) : /*#__PURE__*/_react.default.createElement("svg", {
36
- style: {
37
- width: '16px',
38
- height: '16px',
39
- fill: checkboxStyle.color
40
- }
41
- }, /*#__PURE__*/_react.default.createElement("use", {
42
- xlinkHref: "#".concat(checkboxStyle.type)
43
- })));
33
+ }) : /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
34
+ className: "dtable-ui-checkbox-check-svg",
35
+ symbol: checkboxStyle.type,
36
+ color: checkboxStyle.color
37
+ }));
44
38
  }
45
39
  }
46
40
  CheckboxFormatter.defaultProps = {
@@ -1,28 +1,22 @@
1
- .dtable-ui-collaborator-editor {
1
+ .dtable-ui-collaborator-editor-container {
2
2
  position: relative;
3
3
  }
4
4
 
5
- .dtable-ui-collaborator-editor-popover .collaborator-search-container {
5
+ .dtable-ui-collaborator-editor-container .collaborator-search-container {
6
6
  padding: 10px 10px 0 10px;
7
7
  }
8
8
 
9
- .dtable-ui-collaborator-editor-popover .collaborator-search-container input {
9
+ .dtable-ui-collaborator-editor-container .collaborator-search-container input {
10
10
  height: 28px;
11
11
  }
12
12
 
13
- .dtable-ui-collaborator-editor-popover .collaborator-list-container {
13
+ .dtable-ui-collaborator-editor-container .collaborator-list-container {
14
14
  min-height: 160px;
15
15
  max-height: 200px;
16
16
  margin: 10px 0;
17
17
  overflow: auto;
18
18
  }
19
-
20
- .dtable-ui-collaborator-editor-popover .collaborator-list-container .no-search-result {
21
- color: #666666;
22
- padding-left: 10px;
23
- }
24
-
25
- .dtable-ui-collaborator-editor-popover .collaborator-list-container .collaborator-item-container {
19
+ .dtable-ui-collaborator-editor-container .collaborator-list-container .collaborator-item-container {
26
20
  display: flex;
27
21
  align-items: center;
28
22
  justify-content: space-between;
@@ -32,39 +26,22 @@
32
26
  cursor: pointer;
33
27
  }
34
28
 
35
- .dtable-ui-collaborator-editor-popover .collaborator-list-container .collaborator-item-container:hover {
36
- background-color: #f5f5f5;
29
+ .dtable-ui-collaborator-editor-container .collaborator-list-container .collaborator-item-container:hover,
30
+ .dtable-ui-collaborator-editor-container .collaborator-list-container .collaborator-item-container-highlight {
31
+ background: #f5f5f5;
32
+ cursor: pointer;
37
33
  }
38
34
 
39
- .dtable-ui-collaborator-editor-popover .dtable-ui.collaborator-item {
35
+ .dtable-ui-collaborator-editor-container .dtable-ui.collaborator-item {
40
36
  background: none;
41
37
  }
42
38
 
43
- .dtable-ui-collaborator-editor-popover .collaborator-checked {
39
+ .dtable-ui-collaborator-editor-container .collaborator-checked {
44
40
  width: 20px;
45
41
  text-align: center;
46
42
  }
47
43
 
48
- .dtable-ui-collaborator-editor-popover .collaborator-checked .dtable-font {
44
+ .dtable-ui-collaborator-editor-container .collaborator-checked .dtable-font {
49
45
  font-size: 12px;
50
46
  color: #798d99;
51
47
  }
52
-
53
- .dtable-ui-collaborator-editor .dtable-ui-collaborator-editor-container-no-btn {
54
- min-height: 40px;
55
- padding: 0.375rem 0.75rem;
56
- border: 1px solid rgba(0, 40, 100, 0.12);
57
- border-radius: 3px;
58
- transition: border-color .15s ease-in-out;
59
- }
60
-
61
- .dtable-ui-collaborator-editor .dtable-ui-collaborator-editor-container-no-btn .collaborators-container {
62
- min-height: 26px;
63
- display: flex;
64
- align-items: center;
65
- flex-wrap: wrap;
66
- }
67
-
68
- .dtable-ui-collaborator-editor .dtable-ui-collaborator-editor-container-no-btn .collaborators-container .collaborator-item {
69
- margin: 2px 10px 2px 0;
70
- }
@@ -1,223 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
10
9
  var _reactResponsive = _interopRequireDefault(require("react-responsive"));
11
- var _lang = require("../lang");
12
- var _modalPortal = _interopRequireDefault(require("../common/modal-portal"));
13
- var _CollaboratorItem = _interopRequireDefault(require("../CollaboratorItem"));
14
- var _EditEditorButton = _interopRequireDefault(require("../EditEditorButton"));
15
- var _pcCollaboratorEditorPopover = _interopRequireDefault(require("./pc-collaborator-editor-popover"));
16
- var _mbCollaboratorEditorPopover = _interopRequireDefault(require("./mb-collaborator-editor-popover"));
10
+ var _pcCollaboratorEditor = _interopRequireDefault(require("./pc-collaborator-editor"));
11
+ var _mbCollaboratorEditor = _interopRequireDefault(require("./mb-collaborator-editor"));
17
12
  require("./index.css");
18
- class CollaboratorEditor extends _react.default.Component {
19
- constructor(props) {
20
- super(props);
21
- this.onMouseDown = e => {
22
- if (this.state.isPopoverShow && this.editorPopoverRef) {
23
- if (this.editorPopoverRef === e.target || this.editorPopoverRef.contains(e.target)) {
24
- return;
25
- }
26
- }
27
- if (this.editorContainer !== e.target && !this.editorContainer.contains(e.target)) {
28
- this.onClosePopover();
29
- }
30
- };
31
- this.getFormattedCollaborators = () => {
32
- let {
33
- newValue
34
- } = this.state;
35
- if (Array.isArray(newValue) && newValue.length > 0) {
36
- const {
37
- collaborators
38
- } = this.props;
39
- return newValue.map(collaboratorEmail => {
40
- return collaborators.find(collaborator => collaborator.email === collaboratorEmail);
41
- }).filter(collaborator => !!collaborator);
42
- }
43
- return [];
44
- };
45
- this.togglePopover = event => {
46
- event.nativeEvent.stopImmediatePropagation();
47
- event.stopPropagation();
48
- if (this.props.isReadOnly) {
49
- return;
50
- }
51
- let isPopoverShow = !this.state.isPopoverShow;
52
- if (isPopoverShow) {
53
- let popoverPosition = this.caculatePopoverPosition();
54
- this.setState({
55
- isPopoverShow,
56
- popoverPosition
57
- });
58
- } else {
59
- this.setState({
60
- isPopoverShow
61
- });
62
- }
63
- };
64
- this.onCommit = newValue => {
65
- let updated = {};
66
- let {
67
- column
68
- } = this.props;
69
- updated[column.name] = newValue;
70
- this.props.onCommit(updated);
71
- };
72
- this.onCollaboratorItemToggle = collaborator => {
73
- let newValue = this.state.newValue.slice();
74
- let collaboratorIndex = newValue.findIndex(collaboratorEmail => collaboratorEmail === collaborator.email);
75
- if (collaboratorIndex !== -1) {
76
- newValue.splice(collaboratorIndex, 1);
77
- } else {
78
- newValue.push(collaborator.email);
79
- }
80
- this.setState({
81
- newValue
82
- }, () => {
83
- this.onCommit(newValue);
84
- });
85
- };
86
- this.onDeleteCollaborator = collaborator => {
87
- let newValue = this.state.newValue.slice();
88
- let optionIndex = newValue.findIndex(collaboratorEmail => collaboratorEmail === collaborator.email);
89
- if (optionIndex > -1) {
90
- newValue.splice(optionIndex, 1);
91
- this.setState({
92
- newValue
93
- }, () => {
94
- this.onCommit(newValue);
95
- });
96
- }
97
- };
98
- this.caculatePopoverPosition = () => {
99
- if (this.props.isInModel) {
100
- const {
101
- top,
102
- left
103
- } = this.editor.getBoundingClientRect();
104
- return {
105
- top: top + 40,
106
- left,
107
- zIndex: 1051
108
- };
109
- }
110
- const POPOVER_MAX_HEIGHT = 200;
111
- let innerHeight = window.innerHeight;
112
- let {
113
- top,
114
- height
115
- } = this.editor.getClientRects()[0];
116
- let isBelow = innerHeight - (top + height) > POPOVER_MAX_HEIGHT;
117
- let position = {
118
- top: height + 1,
119
- left: 0
120
- };
121
- if (!isBelow) {
122
- let bottom = height + 1;
123
- position = {
124
- bottom: bottom,
125
- left: 0
126
- };
127
- }
128
- return position;
129
- };
130
- this.onClosePopover = () => {
131
- this.setState({
132
- isPopoverShow: false
133
- });
134
- };
135
- this.onClickContainer = e => {
136
- e.stopPropagation();
137
- if (!this.props.isShowEditButton && !this.state.isPopoverShow) {
138
- this.setState({
139
- isPopoverShow: true,
140
- popoverPosition: this.caculatePopoverPosition()
141
- });
142
- }
143
- };
144
- this.setEditorContainerRef = editorContainer => {
145
- this.editorContainer = editorContainer;
146
- };
147
- this.setEditorRef = editor => {
148
- this.editor = editor;
149
- };
150
- this.setPopoverRef = ref => {
151
- this.editorPopoverRef = ref;
152
- };
153
- this.state = {
154
- newValue: Array.isArray(props.value) ? props.value : [],
155
- isPopoverShow: false,
156
- popoverPosition: {}
157
- };
158
- }
159
- componentDidMount() {
160
- document.addEventListener('mousedown', this.onMouseDown);
161
- }
162
- componentWillUnmount() {
163
- document.removeEventListener('mousedown', this.onMouseDown);
164
- }
165
- render() {
166
- let {
167
- collaborators,
168
- isReadOnly,
169
- isShowEditButton
170
- } = this.props;
171
- let {
172
- isPopoverShow,
173
- popoverPosition
174
- } = this.state;
175
- let selectedCollaborators = this.getFormattedCollaborators();
176
- let enableDeleteCollaborator = !isReadOnly;
177
- return /*#__PURE__*/_react.default.createElement("div", {
178
- ref: this.setEditorContainerRef,
179
- className: "dtable-ui-collaborator-editor"
180
- }, /*#__PURE__*/_react.default.createElement("div", {
181
- ref: this.setEditorRef,
182
- className: "dtable-ui-collaborator-editor-container ".concat(isShowEditButton ? '' : 'dtable-ui-collaborator-editor-container-no-btn'),
183
- onClick: this.onClickContainer
184
- }, isShowEditButton && /*#__PURE__*/_react.default.createElement(_EditEditorButton.default, {
185
- text: (0, _lang.getLocale)('Add_a_collaborator'),
186
- onClick: this.togglePopover
187
- }), selectedCollaborators.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
188
- className: "collaborators-container ".concat(isShowEditButton ? 'mt-2' : '')
189
- }, selectedCollaborators.map(collaborator => {
190
- return /*#__PURE__*/_react.default.createElement(_CollaboratorItem.default, {
191
- key: collaborator.email,
192
- collaborator: collaborator,
193
- enableDeleteCollaborator: enableDeleteCollaborator,
194
- onDeleteCollaborator: this.onDeleteCollaborator
195
- });
196
- }))), isPopoverShow && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
197
- query: '(min-width: 768px)'
198
- }, /*#__PURE__*/_react.default.createElement(_modalPortal.default, null, /*#__PURE__*/_react.default.createElement(_pcCollaboratorEditorPopover.default, {
199
- popoverPosition: popoverPosition,
200
- isReadOnly: this.props.isReadOnly,
201
- selectedCollaborators: selectedCollaborators,
202
- collaborators: collaborators,
203
- onCollaboratorItemToggle: this.onCollaboratorItemToggle,
204
- setPopoverRef: this.setPopoverRef
205
- }))), /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
206
- query: '(max-width: 767.8px)'
207
- }, /*#__PURE__*/_react.default.createElement(_mbCollaboratorEditorPopover.default, {
208
- isReadOnly: this.props.isReadOnly,
209
- value: this.state.newValue,
210
- column: this.props.column,
211
- collaborators: this.props.collaborators,
212
- onCollaboratorItemToggle: this.onCollaboratorItemToggle,
213
- onClosePopover: this.onClosePopover
214
- }))));
215
- }
216
- }
217
- CollaboratorEditor.defaultProps = {
218
- isShowEditButton: true,
219
- isReadOnly: false,
220
- value: [],
221
- isInModel: false
13
+ const CollaboratorEditor = _ref => {
14
+ let {
15
+ value: oldValue,
16
+ ...props
17
+ } = _ref;
18
+ const value = Array.isArray(oldValue) ? oldValue : [];
19
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
20
+ query: '(min-width: 768px)'
21
+ }, /*#__PURE__*/_react.default.createElement(_pcCollaboratorEditor.default, Object.assign({}, props, {
22
+ value: value
23
+ }))), /*#__PURE__*/_react.default.createElement(_reactResponsive.default, {
24
+ query: '(max-width: 767.8px)'
25
+ }, /*#__PURE__*/_react.default.createElement(_mbCollaboratorEditor.default, Object.assign({}, props, {
26
+ value: value
27
+ }))));
222
28
  };
223
29
  var _default = exports.default = CollaboratorEditor;