dtable-ui-component 5.3.6 → 5.3.8

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 (256) 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/DTableCustomizeSelect/index.js +2 -2
  36. package/lib/DTableFiltersPopover/utils/index.js +1 -7
  37. package/lib/DTableFiltersPopover/widgets/filter-calendar.js +2 -2
  38. package/lib/DTableGroupSelect/index.js +3 -3
  39. package/lib/DTableSelect/index.js +3 -1
  40. package/lib/DateEditor/index.js +14 -51
  41. package/lib/DateEditor/pc-date-editor-popover.js +149 -12
  42. package/lib/{common/delete-tip.js → DeleteTip/index.js} +12 -16
  43. package/lib/Department-editor/department-single-select.js +1 -1
  44. package/lib/Department-editor/index.js +3 -4
  45. package/lib/DepartmentSingleSelectFormatter/index.js +3 -2
  46. package/lib/DigitalSignEditor/constants.js +7 -0
  47. package/lib/DigitalSignEditor/index.css +69 -0
  48. package/lib/DigitalSignEditor/index.js +182 -0
  49. package/lib/DigitalSignEditor/service.js +39 -0
  50. package/lib/DigitalSignEditor/signature-board/index.css +35 -0
  51. package/lib/DigitalSignEditor/signature-board/index.js +135 -0
  52. package/lib/DigitalSignEditor/signature-board/signature-tool.js +396 -0
  53. package/lib/DigitalSignEditor/utils.js +29 -0
  54. package/lib/DurationEditor/index.js +110 -0
  55. package/lib/EmailEditor/index.js +58 -0
  56. package/lib/FileEditor/addition-previewer/index.css +1 -0
  57. package/lib/FileEditor/addition-previewer/index.js +52 -0
  58. package/lib/FileEditor/addition-previewer/local-file-addition/index.css +1 -0
  59. package/lib/FileEditor/addition-previewer/local-file-addition/index.js +252 -0
  60. package/lib/FileEditor/constants.js +7 -0
  61. package/lib/FileEditor/files-previewer/file-previewer/dropdown-menu.js +74 -0
  62. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.css +5 -0
  63. package/lib/FileEditor/files-previewer/file-previewer/file-name-editor/index.js +77 -0
  64. package/lib/FileEditor/files-previewer/file-previewer/index.css +88 -0
  65. package/lib/FileEditor/files-previewer/file-previewer/index.js +167 -0
  66. package/lib/FileEditor/files-previewer/index.css +56 -0
  67. package/lib/FileEditor/files-previewer/index.js +277 -0
  68. package/lib/FileEditor/index.css +6 -0
  69. package/lib/FileEditor/index.js +258 -11
  70. package/lib/FileEditor/utils.js +22 -0
  71. package/lib/FileItemFormatter/index.js +19 -20
  72. package/lib/FileUploader/index.css +9 -0
  73. package/lib/FileUploader/index.js +268 -14
  74. package/lib/FormulaFormatter/cell-value-validator.js +17 -17
  75. package/lib/FormulaFormatter/index.js +2 -1
  76. package/lib/FormulaFormatter/utils.js +0 -31
  77. package/lib/GeolocationEditor/country-editor.js +319 -0
  78. package/lib/GeolocationEditor/index.css +641 -0
  79. package/lib/GeolocationEditor/index.js +240 -0
  80. package/lib/GeolocationEditor/location-editor.js +368 -0
  81. package/lib/GeolocationEditor/map-editor/index.js +456 -0
  82. package/lib/GeolocationEditor/map-editor/large-editor/index.css +137 -0
  83. package/lib/GeolocationEditor/map-editor/large-editor/index.js +461 -0
  84. package/lib/GeolocationEditor/map-editor-utils.js +153 -0
  85. package/lib/GeolocationEditor/map-selection-editor/index.js +455 -0
  86. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.css +1 -0
  87. package/lib/GeolocationEditor/map-selection-editor/large-editor/index.js +447 -0
  88. package/lib/GeolocationEditor/parse-geolocation.js +282 -0
  89. package/lib/GeolocationEditor/province-city-editor.js +292 -0
  90. package/lib/GeolocationEditor/province-editor.js +226 -0
  91. package/lib/GeolocationEditor/selector-header-item.js +28 -0
  92. package/lib/GeolocationEditor/selector-list.js +33 -0
  93. package/lib/ImageEditor/addition-previewer/image-link/index.css +45 -0
  94. package/lib/ImageEditor/addition-previewer/image-link/index.js +73 -0
  95. package/lib/ImageEditor/addition-previewer/index.css +106 -0
  96. package/lib/ImageEditor/addition-previewer/index.js +63 -0
  97. package/lib/ImageEditor/addition-previewer/local-image-addition/index.css +125 -0
  98. package/lib/ImageEditor/addition-previewer/local-image-addition/index.js +254 -0
  99. package/lib/ImageEditor/constants.js +7 -0
  100. package/lib/ImageEditor/images-previewer/image-preview/index.css +59 -0
  101. package/lib/ImageEditor/images-previewer/image-preview/index.js +155 -0
  102. package/lib/ImageEditor/images-previewer/index.css +18 -0
  103. package/lib/ImageEditor/images-previewer/index.js +140 -0
  104. package/lib/ImageEditor/index.css +24 -0
  105. package/lib/ImageEditor/index.js +194 -0
  106. package/lib/ImageThumbnail/index.css +20 -0
  107. package/lib/ImageThumbnail/index.js +136 -0
  108. package/lib/LinkEditor/index.js +2 -3
  109. package/lib/LinkEditor/pc-link-editor-popover/index.js +1 -1
  110. package/lib/MultipleSelectEditor/index.js +16 -177
  111. package/lib/NumberEditor/index.js +63 -77
  112. package/lib/RowExpandDialog/body/index.css +21 -0
  113. package/lib/RowExpandDialog/body/index.js +262 -0
  114. package/lib/RowExpandDialog/column-content/index.css +48 -0
  115. package/lib/RowExpandDialog/column-content/index.js +50 -0
  116. package/lib/RowExpandDialog/header/index.css +31 -0
  117. package/lib/RowExpandDialog/header/index.js +55 -0
  118. package/lib/RowExpandDialog/index.css +28 -0
  119. package/lib/RowExpandDialog/index.js +237 -0
  120. package/lib/RowExpandEditor/RowExpandAddBtn/index.css +22 -0
  121. package/lib/RowExpandEditor/RowExpandAddBtn/index.js +24 -0
  122. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.css +18 -0
  123. package/lib/RowExpandEditor/RowExpandCheckboxEditor/index.js +43 -0
  124. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.css +5 -0
  125. package/lib/RowExpandEditor/RowExpandCollaboratorEditor/index.js +232 -0
  126. package/lib/RowExpandEditor/RowExpandDateEditor/index.js +130 -0
  127. package/lib/RowExpandEditor/RowExpandDepartmentEditor/index.js +106 -0
  128. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.css +13 -0
  129. package/lib/RowExpandEditor/RowExpandDigitalSignEditor/index.js +208 -0
  130. package/lib/RowExpandEditor/RowExpandDurationEditor/index.js +105 -0
  131. package/lib/RowExpandEditor/RowExpandEmailEditor/index.css +2 -0
  132. package/lib/RowExpandEditor/RowExpandEmailEditor/index.js +125 -0
  133. package/lib/RowExpandEditor/RowExpandFileEditor/index.css +1 -0
  134. package/lib/RowExpandEditor/RowExpandFileEditor/index.js +147 -0
  135. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.css +17 -0
  136. package/lib/RowExpandEditor/RowExpandGeolocationEditor/index.js +165 -0
  137. package/lib/RowExpandEditor/RowExpandImageEditor/index.css +6 -0
  138. package/lib/RowExpandEditor/RowExpandImageEditor/index.js +170 -0
  139. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.css +6 -0
  140. package/lib/RowExpandEditor/RowExpandLongTextEditor/index.js +123 -0
  141. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.css +44 -0
  142. package/lib/RowExpandEditor/RowExpandMultipleSelectEditor/index.js +224 -0
  143. package/lib/RowExpandEditor/RowExpandNumberEditor/index.js +105 -0
  144. package/lib/RowExpandEditor/RowExpandRateEditor/index.css +13 -0
  145. package/lib/RowExpandEditor/RowExpandRateEditor/index.js +152 -0
  146. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.css +58 -0
  147. package/lib/RowExpandEditor/RowExpandSingleSelectorEditor/index.js +193 -0
  148. package/lib/RowExpandEditor/RowExpandTextEditor/index.css +4 -0
  149. package/lib/RowExpandEditor/RowExpandTextEditor/index.js +127 -0
  150. package/lib/RowExpandEditor/RowExpandUrlEditor/index.css +31 -0
  151. package/lib/RowExpandEditor/RowExpandUrlEditor/index.js +130 -0
  152. package/lib/RowExpandEditor/constants.js +44 -0
  153. package/lib/RowExpandEditor/index.css +0 -0
  154. package/lib/RowExpandEditor/index.js +32 -0
  155. package/lib/RowExpandFormatter/RowExpandDepartmentFormatter/index.js +27 -0
  156. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.css +1 -1
  157. package/lib/{RowExpandEmailFormatter → RowExpandFormatter/RowExpandEmailFormatter}/index.js +1 -1
  158. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.css +6 -6
  159. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/index.js +3 -1
  160. package/lib/{RowExpandFileFormatter → RowExpandFormatter/RowExpandFileFormatter}/row-expand-file-item-formatter.js +12 -13
  161. package/lib/{RowExpandFormulaFormatter → RowExpandFormatter/RowExpandFormulaFormatter}/index.js +11 -10
  162. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.css +6 -6
  163. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/index.js +1 -1
  164. package/lib/{RowExpandImageFormatter → RowExpandFormatter/RowExpandImageFormatter}/row-expand-image-item-formatter.js +5 -5
  165. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/collaborator-item-formatter.js +1 -1
  166. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.css +2 -2
  167. package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/index.js +20 -20
  168. package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.css +1 -1
  169. package/lib/RowExpandFormatter/RowExpandUrlFormatter/index.css +1 -0
  170. package/lib/{RowExpandUrlFormatter → RowExpandFormatter/RowExpandUrlFormatter}/index.js +4 -3
  171. package/lib/RowExpandFormatter/constants.js +61 -0
  172. package/lib/RowExpandFormatter/index.css +28 -3
  173. package/lib/RowExpandFormatter/index.js +113 -131
  174. package/lib/SingleSelectEditor/index.js +16 -156
  175. package/lib/SvgIcon/index.css +11 -0
  176. package/lib/SvgIcon/index.js +29 -0
  177. package/lib/TextEditor/index.js +112 -42
  178. package/lib/UploadProgress/index.js +38 -0
  179. package/lib/UrlEditor/index.js +61 -0
  180. package/lib/common/editor-base.js +52 -0
  181. package/lib/constants/file.js +96 -0
  182. package/lib/constants/index.js +27 -15
  183. package/lib/constants/key-codes.js +109 -0
  184. package/lib/css/cell-editor.css +18 -2
  185. package/lib/formatterConfig/base-formatter-config.js +23 -23
  186. package/lib/formatterConfig/index.js +3 -3
  187. package/lib/hooks/index.js +16 -0
  188. package/lib/index.js +81 -46
  189. package/lib/lang/index.js +19 -16
  190. package/lib/locales/de.json +167 -0
  191. package/lib/locales/en.json +167 -0
  192. package/lib/locales/es.json +167 -0
  193. package/lib/locales/fr.json +167 -0
  194. package/lib/locales/pt.json +167 -0
  195. package/lib/locales/ru.json +167 -0
  196. package/lib/locales/zh-CN.json +167 -0
  197. package/lib/select-editor/index.js +6 -6
  198. package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.js +3 -3
  199. package/lib/select-editor/pc-select-editor/index.css +85 -0
  200. package/lib/select-editor/pc-select-editor/index.js +290 -0
  201. package/lib/utils/cell-comparer.js +35 -0
  202. package/lib/utils/cell.js +55 -0
  203. package/lib/utils/column-utils.js +25 -0
  204. package/lib/utils/editor-utils.js +1 -6
  205. package/lib/utils/get-event-transfer.js +75 -0
  206. package/lib/utils/hotkey.js +37 -0
  207. package/lib/utils/object-utils.js +61 -0
  208. package/lib/utils/url.js +121 -8
  209. package/lib/utils/utils.js +119 -2
  210. package/package.json +3 -2
  211. package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +0 -97
  212. package/lib/FileEditor/pc-files-addition/index.js +0 -1
  213. package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +0 -1
  214. package/lib/FileEditor/pc-files-preview/index.js +0 -1
  215. package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +0 -1
  216. package/lib/FileItemFormatter/assets/file/192/excel.png +0 -0
  217. package/lib/FileItemFormatter/assets/file/192/file.png +0 -0
  218. package/lib/FileItemFormatter/assets/file/192/music.png +0 -0
  219. package/lib/FileItemFormatter/assets/file/192/pdf.png +0 -0
  220. package/lib/FileItemFormatter/assets/file/192/pic.png +0 -0
  221. package/lib/FileItemFormatter/assets/file/192/ppt.png +0 -0
  222. package/lib/FileItemFormatter/assets/file/192/txt.png +0 -0
  223. package/lib/FileItemFormatter/assets/file/192/video.png +0 -0
  224. package/lib/FileItemFormatter/assets/file/192/word.png +0 -0
  225. package/lib/FileItemFormatter/assets/file/24/excel.png +0 -0
  226. package/lib/FileItemFormatter/assets/file/24/file.png +0 -0
  227. package/lib/FileItemFormatter/assets/file/24/music.png +0 -0
  228. package/lib/FileItemFormatter/assets/file/24/pdf.png +0 -0
  229. package/lib/FileItemFormatter/assets/file/24/pic.png +0 -0
  230. package/lib/FileItemFormatter/assets/file/24/ppt.png +0 -0
  231. package/lib/FileItemFormatter/assets/file/24/txt.png +0 -0
  232. package/lib/FileItemFormatter/assets/file/24/video.png +0 -0
  233. package/lib/FileItemFormatter/assets/file/24/word.png +0 -0
  234. package/lib/FileItemFormatter/assets/folder/folder-192.png +0 -0
  235. package/lib/FileItemFormatter/assets/folder/folder-24.png +0 -0
  236. package/lib/FileItemFormatter/utils.js +0 -99
  237. package/lib/MultipleSelectEditor/index.css +0 -9
  238. package/lib/RowExpandLinkFormatter/utils.js +0 -71
  239. package/lib/RowExpandUrlFormatter/index.css +0 -1
  240. package/lib/SingleSelectEditor/index.css +0 -14
  241. package/lib/common/modal-portal.js +0 -26
  242. package/lib/locals/de.js +0 -103
  243. package/lib/locals/en.js +0 -104
  244. package/lib/locals/es.js +0 -103
  245. package/lib/locals/fr.js +0 -103
  246. package/lib/locals/pt.js +0 -103
  247. package/lib/locals/ru.js +0 -103
  248. package/lib/locals/zh-CN.js +0 -104
  249. package/lib/select-editor/pc-select-editor-popover/index.css +0 -71
  250. package/lib/select-editor/pc-select-editor-popover/index.js +0 -122
  251. /package/lib/CollaboratorEditor/{mb-collaborator-editor-popover → mb-collaborator-editor}/index.css +0 -0
  252. /package/lib/CollaboratorEditor/{pc-collaborator-editor-popover → pc-collaborator-editor}/index.css +0 -0
  253. /package/lib/{common/delete-tip.css → DeleteTip/index.css} +0 -0
  254. /package/lib/{RowExpandLinkFormatter → RowExpandFormatter/RowExpandLinkFormatter}/value-display-utils.js +0 -0
  255. /package/lib/{RowExpandRateFormatter → RowExpandFormatter/RowExpandRateFormatter}/index.js +0 -0
  256. /package/lib/select-editor/{mb-select-editor-popover → mb-select-editor}/index.css +0 -0
@@ -0,0 +1,224 @@
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 _dtableUtils = require("dtable-utils");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _constants = require("../../constants");
12
+ var _MultipleSelectEditor = _interopRequireDefault(require("../../MultipleSelectEditor"));
13
+ var _lang = require("../../lang");
14
+ require("./index.css");
15
+ class RowExpandMultipleSelectEditor extends _react.default.Component {
16
+ constructor(_props) {
17
+ super(_props);
18
+ this.getOptions = props => {
19
+ const {
20
+ column
21
+ } = props;
22
+ return (0, _dtableUtils.getColumnOptions)(column);
23
+ };
24
+ this.onKeyDown = e => {
25
+ if (e.keyCode === _constants.KeyCodes.Enter && this.props.isEditorFocus && !this.state.showSelectPopover) {
26
+ this.setState({
27
+ showSelectPopover: true
28
+ });
29
+ }
30
+ };
31
+ this.toggleSingleSelect = value => {
32
+ this.setState({
33
+ showSelectPopover: value
34
+ }, () => {
35
+ var _this$selectRef;
36
+ if (value) return;
37
+ // eslint-disable-next-line no-unused-expressions
38
+ (_this$selectRef = this.selectRef) === null || _this$selectRef === void 0 ? void 0 : _this$selectRef.focus();
39
+ });
40
+ };
41
+ this.hideDropDownMenu = event => {
42
+ if (!event.target || event.target.tagName.toUpperCase() === 'INPUT') return;
43
+ if (!this.ref.contains(event.target) && this.state.showSelectPopover) {
44
+ const singleSelectEditor = document.getElementsByClassName('dtable-ui-select-editor-container')[0];
45
+ if (singleSelectEditor && singleSelectEditor.contains(event.target)) return;
46
+ this.toggleSingleSelect(false);
47
+ }
48
+ };
49
+ this.onToggleSelect = e => {
50
+ e.preventDefault();
51
+ e.stopPropagation();
52
+ this.props.updateTabIndex(this.props.columnIndex);
53
+ this.toggleSingleSelect(true);
54
+ };
55
+ this.closeEditor = () => {
56
+ this.toggleSingleSelect(false);
57
+ };
58
+ this.onFocus = () => {
59
+ this.props.updateTabIndex(this.props.columnIndex);
60
+ };
61
+ this.onChange = option => {
62
+ const optionKey = option[this.key];
63
+ let newValue = this.state.value.slice(0);
64
+ const optionKeyIndex = newValue.findIndex(o => o === optionKey);
65
+ if (optionKeyIndex === -1) {
66
+ newValue.push(optionKey);
67
+ } else {
68
+ newValue.splice(optionKeyIndex, 1);
69
+ }
70
+ this.setState({
71
+ value: newValue
72
+ });
73
+ this.props.onCommit(newValue);
74
+ };
75
+ this.removeOption = (option, event) => {
76
+ event.stopPropagation();
77
+ this.onChange(option);
78
+ };
79
+ this.getMultipleSelectList = () => {
80
+ const {
81
+ value
82
+ } = this.state;
83
+ if (!Array.isArray(value)) return [];
84
+ const selectedOptions = this.options.filter(option => value.includes(option[this.key]));
85
+ const selectedOptionIds = selectedOptions.map(option => option[this.key]);
86
+ const invalidOptionIds = value.filter(optionId => !selectedOptionIds.includes(optionId));
87
+ return selectedOptions.map((option, optionIdx) => {
88
+ let textColor = option.textColor || null;
89
+ return /*#__PURE__*/_react.default.createElement("div", {
90
+ className: "dtable-ui-select-option dtable-ui-multiple-select-option",
91
+ style: {
92
+ backgroundColor: option.color,
93
+ color: textColor
94
+ },
95
+ title: option.name,
96
+ key: optionIdx
97
+ }, /*#__PURE__*/_react.default.createElement("span", {
98
+ className: "dtable-ui-select-option-name"
99
+ }, option.name), /*#__PURE__*/_react.default.createElement("div", {
100
+ className: "dtable-ui-select-option-remove"
101
+ }, /*#__PURE__*/_react.default.createElement("span", {
102
+ className: "remove-icon",
103
+ onClick: this.removeOption.bind(this, option),
104
+ "aria-label": (0, _lang.getLocale)('Delete')
105
+ }, /*#__PURE__*/_react.default.createElement("i", {
106
+ className: "dtable-font dtable-icon-fork-number",
107
+ style: {
108
+ color: textColor === '#FFFFFF' ? textColor : null
109
+ },
110
+ "aria-hidden": "true"
111
+ }))));
112
+ }).concat(invalidOptionIds.map((optionId, index) => {
113
+ return /*#__PURE__*/_react.default.createElement("div", {
114
+ className: "dtable-ui-select-option dtable-ui-multiple-select-option",
115
+ style: {
116
+ backgroundColor: _constants.DELETED_OPTION_BACKGROUND_COLOR
117
+ },
118
+ title: (0, _lang.getLocale)(_constants.DELETED_OPTION_TIPS),
119
+ key: "deleted-multiple-select-".concat(index)
120
+ }, /*#__PURE__*/_react.default.createElement("span", {
121
+ className: "dtable-ui-select-option-name"
122
+ }, (0, _lang.getLocale)(_constants.DELETED_OPTION_TIPS)), /*#__PURE__*/_react.default.createElement("div", {
123
+ className: "dtable-ui-select-option-remove"
124
+ }, /*#__PURE__*/_react.default.createElement("span", {
125
+ className: "remove-icon",
126
+ onClick: this.removeOption.bind(this, {
127
+ id: optionId
128
+ }),
129
+ "aria-label": (0, _lang.getLocale)('Delete')
130
+ }, /*#__PURE__*/_react.default.createElement("i", {
131
+ className: "dtable-font dtable-icon-fork-number",
132
+ "aria-hidden": "true"
133
+ }))));
134
+ }));
135
+ };
136
+ this.renderOptions = () => {
137
+ const {
138
+ isEditorFocus
139
+ } = this.props;
140
+ const options = this.getMultipleSelectList();
141
+ return /*#__PURE__*/_react.default.createElement("div", {
142
+ tabIndex: 0,
143
+ onFocus: this.onFocus,
144
+ onClick: this.onToggleSelect,
145
+ ref: ref => this.multipleSelectOptionsRef = ref,
146
+ className: (0, _classnames.default)('dtable-ui dtable-ui-row-expand-select-editor custom-select', {
147
+ 'focus': isEditorFocus
148
+ })
149
+ }, /*#__PURE__*/_react.default.createElement("div", {
150
+ className: "dtable-ui-row-expand-select-editor-inner"
151
+ }, /*#__PURE__*/_react.default.createElement("div", null, options.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
152
+ className: "dtable-ui-row-expand-select-options"
153
+ }, options)), /*#__PURE__*/_react.default.createElement("i", {
154
+ "aria-hidden": "true",
155
+ className: "dtable-font dtable-icon-down3"
156
+ })));
157
+ };
158
+ this.state = {
159
+ value: _props.value || [],
160
+ showSelectPopover: false
161
+ };
162
+ this.key = _props.valueKey === 'name' ? 'name' : 'id';
163
+ this.options = this.getOptions(_props);
164
+ this.selectRef = null;
165
+ }
166
+ componentDidMount() {
167
+ document.addEventListener('mousedown', this.hideDropDownMenu);
168
+ document.addEventListener('keydown', this.onKeyDown);
169
+ }
170
+ UNSAFE_componentWillReceiveProps(nextProps) {
171
+ const {
172
+ value
173
+ } = nextProps;
174
+ if (value !== this.props.value) {
175
+ this.options = this.getOptions(nextProps);
176
+ this.setState({
177
+ value
178
+ });
179
+ }
180
+ }
181
+ componentDidUpdate(prevProps, prevState) {
182
+ if (this.state.showSelectPopover !== prevState.showSelectPopover) {
183
+ if (this.state.showSelectPopover === true && this.props.onEditorOpen) {
184
+ this.props.onEditorOpen();
185
+ }
186
+ if (this.state.showSelectPopover === false && this.props.onEditorClose) {
187
+ this.props.onEditorClose();
188
+ }
189
+ }
190
+ }
191
+ componentWillUnmount() {
192
+ document.removeEventListener('mousedown', this.hideDropDownMenu);
193
+ document.removeEventListener('keydown', this.onKeyDown);
194
+ }
195
+ render() {
196
+ const {
197
+ column,
198
+ isSupportNewOption,
199
+ onAddNewOption
200
+ } = this.props;
201
+ const {
202
+ showSelectPopover,
203
+ value
204
+ } = this.state;
205
+ return /*#__PURE__*/_react.default.createElement("div", {
206
+ className: "position-relative w-100",
207
+ ref: ref => this.ref = ref
208
+ }, this.renderOptions(), /*#__PURE__*/_react.default.createElement("span", {
209
+ ref: ref => this.targetRef = ref
210
+ }), showSelectPopover && /*#__PURE__*/_react.default.createElement(_MultipleSelectEditor.default, {
211
+ isInModal: true,
212
+ options: this.options,
213
+ column: column,
214
+ value: value,
215
+ valueKey: this.key,
216
+ target: this.targetRef,
217
+ onCommit: this.onChange,
218
+ isSupportNewOption: isSupportNewOption,
219
+ onAddNewOption: onAddNewOption,
220
+ onClose: this.closeEditor
221
+ }));
222
+ }
223
+ }
224
+ var _default = exports.default = RowExpandMultipleSelectEditor;
@@ -0,0 +1,105 @@
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 _dtableUtils = require("dtable-utils");
10
+ var _NumberEditor = _interopRequireDefault(require("../../NumberEditor"));
11
+ class RowExpandNumberEditor extends _react.default.Component {
12
+ constructor(props) {
13
+ super(props);
14
+ this.toggleEditor = () => {
15
+ this.props.updateTabIndex(this.props.columnIndex);
16
+ if (this.props.readOnly) return;
17
+ this.setState({
18
+ isShowEditor: !this.state.isShowEditor
19
+ });
20
+ };
21
+ this.onCommit = value => {
22
+ this.props.onCommit(value);
23
+ this.setState({
24
+ value
25
+ }, () => {
26
+ this.setState({
27
+ isShowEditor: false
28
+ });
29
+ });
30
+ };
31
+ this.onBlur = () => {
32
+ this.setState({
33
+ isShowEditor: false
34
+ });
35
+ };
36
+ const {
37
+ column,
38
+ row,
39
+ isEditorFocus
40
+ } = props;
41
+ this.state = {
42
+ isShowEditor: isEditorFocus || false,
43
+ value: row[column.key]
44
+ };
45
+ }
46
+ UNSAFE_componentWillReceiveProps(nextProps) {
47
+ const {
48
+ column,
49
+ row
50
+ } = nextProps;
51
+ if (row._id !== this.props.row._id) {
52
+ this.setState({
53
+ value: row[column.key],
54
+ isShowEditor: false
55
+ });
56
+ }
57
+ if (nextProps.isEditorFocus !== this.props.isEditorFocus) {
58
+ let activeInput = document.activeElement;
59
+ if (nextProps.isEditorFocus === false && activeInput) {
60
+ activeInput.blur();
61
+ }
62
+ this.setState({
63
+ isShowEditor: nextProps.isEditorFocus
64
+ });
65
+ }
66
+ }
67
+ render() {
68
+ let {
69
+ column,
70
+ isInModal
71
+ } = this.props;
72
+ let {
73
+ value,
74
+ isShowEditor
75
+ } = this.state;
76
+ if (isShowEditor) {
77
+ return /*#__PURE__*/_react.default.createElement(_NumberEditor.default, {
78
+ isInModal: isInModal,
79
+ column: column,
80
+ value: value,
81
+ onBlur: this.onBlur,
82
+ onCommit: this.onCommit
83
+ });
84
+ }
85
+ let formatValue = '';
86
+ if ((0, _dtableUtils.isNumber)(value)) {
87
+ let {
88
+ data = {}
89
+ } = column;
90
+ formatValue = (0, _dtableUtils.getNumberDisplayString)(value, data);
91
+ }
92
+ return /*#__PURE__*/_react.default.createElement("div", {
93
+ tabIndex: 0,
94
+ onClick: this.toggleEditor,
95
+ onFocus: this.toggleEditor,
96
+ className: "form-control",
97
+ style: {
98
+ width: 320,
99
+ lineHeight: '1.625rem'
100
+ },
101
+ "aria-label": formatValue
102
+ }, formatValue);
103
+ }
104
+ }
105
+ var _default = exports.default = RowExpandNumberEditor;
@@ -0,0 +1,13 @@
1
+ .dtable-ui.dtable-ui-row-expand-rate-editor {
2
+ display: flex;
3
+ }
4
+
5
+ .dtable-ui.dtable-ui-row-expand-rate-editor > div {
6
+ padding-right: 5px;
7
+ cursor: pointer;
8
+ line-height: 1.5;
9
+ }
10
+
11
+ .dtable-ui.dtable-ui-row-expand-rate-editor .rate-item-active {
12
+ opacity: 1 !important;
13
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _lang = require("../../lang");
11
+ require("./index.css");
12
+ class RowExpandRateEditor extends _react.default.Component {
13
+ constructor(props) {
14
+ super(props);
15
+ this.onKeyDown = event => {
16
+ event.stopPropagation();
17
+ const {
18
+ isEditorFocus,
19
+ column
20
+ } = this.props;
21
+ if (!isEditorFocus || !this.canEdit) return;
22
+ const {
23
+ rate_max_number
24
+ } = column.data || {};
25
+ const currentInputNum = Number(event.key);
26
+ const isValidNumber = currentInputNum <= rate_max_number;
27
+ if (isValidNumber) {
28
+ this.onChangeRateNumber(currentInputNum);
29
+ }
30
+ };
31
+ this.onChangeRateNumber = index => {
32
+ this.props.updateTabIndex(this.props.columnIndex);
33
+ if (!this.canEdit) return;
34
+ const {
35
+ value
36
+ } = this.state;
37
+ let newValue = value === index ? '' : index;
38
+ this.setState({
39
+ value: newValue
40
+ });
41
+ this.props.onCommit(newValue);
42
+ };
43
+ this.onMouseEnterRateItem = index => {
44
+ if (this.canEdit) {
45
+ this.setState({
46
+ enterRateItemIndex: index
47
+ });
48
+ }
49
+ };
50
+ this.onMouseLeaveRateItem = () => {
51
+ if (this.canEdit) {
52
+ this.setState({
53
+ enterRateItemIndex: -1
54
+ });
55
+ }
56
+ };
57
+ this.getRateMaxStar = () => {
58
+ const {
59
+ enterRateItemIndex,
60
+ value
61
+ } = this.state;
62
+ const {
63
+ column
64
+ } = this.props;
65
+ const {
66
+ rate_max_number,
67
+ rate_style_color,
68
+ rate_style_type
69
+ } = column.data || {};
70
+ const rateShowType = rate_style_type ? rate_style_type : 'dtable-icon-rate';
71
+ const {
72
+ editable
73
+ } = column;
74
+ let rateList = [];
75
+ for (let i = 0; i < rate_max_number; i++) {
76
+ const rateItemIndex = i + 1;
77
+ let itemStyle = {
78
+ cursor: editable ? 'pointer' : 'default',
79
+ color: value >= rateItemIndex ? rate_style_color : '#e5e5e5'
80
+ };
81
+ let style = itemStyle;
82
+ if (enterRateItemIndex >= rateItemIndex) {
83
+ style = {
84
+ ...itemStyle,
85
+ color: rate_style_color,
86
+ opacity: 0.4
87
+ };
88
+ }
89
+ let rateItem = /*#__PURE__*/_react.default.createElement("div", {
90
+ key: i,
91
+ onMouseEnter: this.onMouseEnterRateItem.bind(this, rateItemIndex),
92
+ onMouseLeave: this.onMouseLeaveRateItem.bind(this, rateItemIndex),
93
+ onClick: this.onChangeRateNumber.bind(this, rateItemIndex),
94
+ style: style,
95
+ className: value >= rateItemIndex ? 'rate-item-active' : ''
96
+ }, /*#__PURE__*/_react.default.createElement("span", {
97
+ className: "dtable-font ".concat(rateShowType)
98
+ }));
99
+ rateList.push(rateItem);
100
+ }
101
+ return rateList;
102
+ };
103
+ this.state = {
104
+ value: props.value || '',
105
+ enterRateItemIndex: -1
106
+ };
107
+ let {
108
+ column: _column
109
+ } = this.props;
110
+ const {
111
+ editable: _editable
112
+ } = _column;
113
+ this.canEdit = _editable;
114
+ }
115
+ UNSAFE_componentWillReceiveProps(nextProps) {
116
+ const {
117
+ column,
118
+ row,
119
+ valueKey
120
+ } = nextProps;
121
+ if (row._id !== this.props.row._id) {
122
+ this.setState({
123
+ value: row[column[valueKey]] || ''
124
+ });
125
+ } else if (nextProps.value !== this.props.value) {
126
+ this.setState({
127
+ value: nextProps.value || ''
128
+ });
129
+ }
130
+ }
131
+ render() {
132
+ const rateList = this.getRateMaxStar();
133
+ let style = {
134
+ width: 320
135
+ };
136
+ if (this.canEdit && this.props.isEditorFocus) {
137
+ style.boxShadow = 'rgba(70, 127, 207, 0.25) 0px 0px 0px 2px';
138
+ style.borderColor = 'rgb(25, 145, 235)';
139
+ }
140
+ return /*#__PURE__*/_react.default.createElement("div", {
141
+ tabIndex: 0,
142
+ style: style,
143
+ onKeyDown: this.onKeyDown,
144
+ onFocus: this.props.updateTabIndex.bind(this, this.props.columnIndex),
145
+ "aria-label": "".concat(this.state.value, ", ").concat((0, _lang.getLocale)('Press_the_number_keys_to_enter_the_corresponding_value')),
146
+ className: (0, _classnames.default)('form-control dtable-ui dtable-ui-row-expand-rate-editor', {
147
+ 'disabled': !this.canEdit
148
+ })
149
+ }, rateList);
150
+ }
151
+ }
152
+ var _default = exports.default = RowExpandRateEditor;
@@ -0,0 +1,58 @@
1
+ .dtable-ui.dtable-ui-row-expand-select-editor {
2
+ display: flex;
3
+ padding: 0 10px;
4
+ border-radius: 3px;
5
+ align-items: center;
6
+ justify-content: space-between;
7
+ user-select: none;
8
+ text-align: left;
9
+ position: relative;
10
+ cursor: pointer;
11
+ height: fit-content;
12
+ min-height: 2.375rem;
13
+ }
14
+
15
+ .dtable-ui.dtable-ui-row-expand-select-editor.focus {
16
+ border-color: #1991eb !important;
17
+ box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25);
18
+ }
19
+
20
+ .dtable-ui.dtable-ui-row-expand-select-editor .dtable-ui-row-expand-select-editor-inner {
21
+ display: flex;
22
+ flex: 1 1;
23
+ overflow: hidden;
24
+ flex-wrap: nowrap;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ }
28
+
29
+ .dtable-ui.dtable-ui-row-expand-select-editor .dtable-ui-row-expand-select-editor-inner .dtable-icon-down3 {
30
+ display: inline-block;
31
+ font-size: 12px;
32
+ color: #999;
33
+ transform: translateY(2px);
34
+ transition: all 0.1s;
35
+ }
36
+
37
+ .dtable-ui.dtable-ui-row-expand-select-editor .dtable-ui-row-expand-select-editor-inner .dtable-ui-select-option {
38
+ border-radius: 10px;
39
+ font-size: 13px;
40
+ line-height: 20px;
41
+ margin: 6px 0;
42
+ max-width: 250px;
43
+ overflow: hidden;
44
+ padding: 0 10px;
45
+ text-align: center;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ width: -webkit-min-content;
49
+ width: min-content;
50
+ }
51
+
52
+ .dtable-ui.dtable-ui-row-expand-select-editor-popover .dtable-ui-editor-container {
53
+ height: fit-content;
54
+ overflow: hidden;
55
+ position: absolute;
56
+ z-index: 1000;
57
+ width: 320px;
58
+ }