dtable-ui-component 0.1.75-beta1 → 0.1.75-beta5

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 (227) hide show
  1. package/lib/AutoNumberFormatter/index.css +1 -0
  2. package/{es/components/cell-formatter/auto-number-formatter.js → lib/AutoNumberFormatter/index.js} +1 -0
  3. package/lib/ButtonFormatter/index.css +13 -0
  4. package/{es/components/cell-formatter/button-formatter.js → lib/ButtonFormatter/index.js} +1 -0
  5. package/lib/CTimeFormatter/index.css +1 -0
  6. package/{es/components/cell-formatter/ctime-formatter.js → lib/CTimeFormatter/index.js} +1 -0
  7. package/lib/CheckboxFormatter/index.css +1 -0
  8. package/{es/components/cell-formatter/checkbox-formatter.js → lib/CheckboxFormatter/index.js} +1 -0
  9. package/lib/CollaboratorFormatter/index.css +1 -0
  10. package/{es/components/cell-formatter/collaborator-formatter.js → lib/CollaboratorFormatter/index.js} +3 -2
  11. package/lib/CollaboratorItem/index.css +49 -0
  12. package/{es/components/common/collaborator-item.js → lib/CollaboratorItem/index.js} +1 -0
  13. package/lib/CreatorFormatter/index.css +1 -0
  14. package/{es/components/cell-formatter/creator-formatter.js → lib/CreatorFormatter/index.js} +3 -2
  15. package/lib/DateFormatter/index.css +1 -0
  16. package/{es/components/cell-formatter/date-formatter.js → lib/DateFormatter/index.js} +2 -1
  17. package/lib/DurationFormatter/index.css +1 -0
  18. package/{es/components/cell-formatter/duration-formatter.js → lib/DurationFormatter/index.js} +2 -1
  19. package/lib/EmailFormatter/index.css +5 -0
  20. package/{es/components/cell-formatter/email-formatter.js → lib/EmailFormatter/index.js} +1 -0
  21. package/lib/FileFormatter/index.css +29 -0
  22. package/{es/components/cell-formatter/file-formatter.js → lib/FileFormatter/index.js} +2 -1
  23. package/{es/components/cell-formatter/widgets/file-item-formatter.js → lib/FileItemFormatter/index.js} +3 -2
  24. package/{es/components/file-uploader → lib/FileUploader}/index.js +0 -0
  25. package/lib/FormulaFormatter/index.css +19 -0
  26. package/{es/components/cell-formatter/formula-formatter.js → lib/FormulaFormatter/index.js} +8 -8
  27. package/lib/GeolocationFormatter/index.css +1 -0
  28. package/{es/components/cell-formatter/geolocation-formatter.js → lib/GeolocationFormatter/index.js} +2 -1
  29. package/{es/components/common → lib/ImageFormatter}/images-lazy-load.js +2 -2
  30. package/lib/ImageFormatter/index.css +34 -0
  31. package/{es/components/cell-formatter/image-formatter.js → lib/ImageFormatter/index.js} +4 -3
  32. package/{es/css/image-previewer-ligntbox.css → lib/ImagePreviewerLightbox/index.css} +0 -0
  33. package/{es/components/cell-formatter/widgets/image-previewer-lightbox.js → lib/ImagePreviewerLightbox/index.js} +3 -3
  34. package/lib/LastModifierFormatter/index.css +1 -0
  35. package/{es/components/cell-formatter/last-modifier-formatter.js → lib/LastModifierFormatter/index.js} +5 -4
  36. package/lib/LinkFormatter/index.css +27 -0
  37. package/{es/components/cell-formatter/link-formatter.js → lib/LinkFormatter/index.js} +2 -2
  38. package/{es/css/loading.css → lib/Loading/index.css} +0 -0
  39. package/{es/components/loading.js → lib/Loading/index.js} +1 -1
  40. package/{es/components/cell-formatter/widgets/long-text-formatter → lib/LongTextFormatter}/html-long-text-formatter.js +1 -1
  41. package/lib/LongTextFormatter/index.css +63 -0
  42. package/{es/components/cell-formatter/long-text-formatter.js → lib/LongTextFormatter/index.js} +3 -2
  43. package/{es/components/cell-formatter/widgets/long-text-formatter → lib/LongTextFormatter}/simple-long-text-formatter.js +1 -1
  44. package/lib/MTimeFormatter/index.css +1 -0
  45. package/{es/components/cell-formatter/mtime-formatter.js → lib/MTimeFormatter/index.js} +1 -0
  46. package/{es/components/common/modal-portal.js → lib/ModalPortal/index.js} +0 -0
  47. package/lib/MultipleSelectFormatter/index.css +1 -0
  48. package/{es/components/cell-formatter/multiple-select-formatter.js → lib/MultipleSelectFormatter/index.js} +2 -1
  49. package/lib/NumberFormatter/index.css +1 -0
  50. package/{es/components/cell-formatter/number-formatter.js → lib/NumberFormatter/index.js} +2 -1
  51. package/lib/RateFormatter/index.css +1 -0
  52. package/{es/components/cell-formatter/rate-formatter.js → lib/RateFormatter/index.js} +1 -0
  53. package/{es/components/common/select-item.js → lib/SelectItem/index.js} +0 -0
  54. package/lib/SingleSelectFormatter/index.css +1 -0
  55. package/{es/components/cell-formatter/single-select-formatter.js → lib/SingleSelectFormatter/index.js} +2 -1
  56. package/lib/TextFormatter/index.css +1 -0
  57. package/{es/components/cell-formatter/text-formatter.js → lib/TextFormatter/index.js} +1 -0
  58. package/lib/UrlFormatter/index.css +5 -0
  59. package/{es/components/cell-formatter/url-formatter.js → lib/UrlFormatter/index.js} +1 -0
  60. package/lib/app.js +75 -80
  61. package/{es/components/cell-factory/cell-formatter-factory.js → lib/cellFormatterFactory/index.js} +3 -3
  62. package/lib/components/cell-editor/checkbox-editor.js +59 -66
  63. package/lib/components/cell-editor/collaborator-editor.js +113 -126
  64. package/lib/components/cell-editor/date-editor.js +99 -119
  65. package/lib/components/cell-editor/index.js +9 -40
  66. package/lib/components/cell-editor/link-editor.js +122 -140
  67. package/lib/components/cell-editor/multiple-select-editor.js +114 -127
  68. package/lib/components/cell-editor/number-editor.js +78 -86
  69. package/lib/components/cell-editor/single-select-editor.js +106 -120
  70. package/lib/components/cell-editor/text-editor.js +65 -72
  71. package/lib/components/cell-editor-dialog/pc-file-editor-dialog.js +31 -51
  72. package/lib/components/cell-editor-dialog/pc-files-addition/index.js +0 -1
  73. package/lib/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -1
  74. package/lib/components/cell-editor-dialog/pc-files-preview/index.js +0 -1
  75. package/lib/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -1
  76. package/lib/components/cell-editor-popover/mb-collaborator-editor-popover.js +105 -111
  77. package/lib/components/cell-editor-popover/mb-date-editor-popover.js +140 -157
  78. package/lib/components/cell-editor-popover/mb-link-editor-popover.js +103 -109
  79. package/lib/components/cell-editor-popover/mb-select-editor-popover.js +142 -155
  80. package/lib/components/cell-editor-popover/pc-collaborator-editor-popover.js +74 -89
  81. package/lib/components/cell-editor-popover/pc-date-editor-popover.js +88 -102
  82. package/lib/components/cell-editor-popover/pc-link-editor-popover.js +77 -91
  83. package/lib/components/cell-editor-popover/pc-select-editor-popover.js +91 -105
  84. package/lib/components/common/collaborator-item.js +43 -59
  85. package/lib/components/common/edit-editor-button.js +28 -39
  86. package/lib/components/common/link-editor-option.js +63 -71
  87. package/lib/components/common/mobile/mb-editor-header.js +39 -52
  88. package/lib/components/common/select-editor-option.js +58 -74
  89. package/lib/constants/cell-types.js +25 -54
  90. package/lib/constants/index.js +5 -26
  91. package/lib/css/cell-formatter.css +0 -243
  92. package/lib/formatterConfig/index.js +31 -0
  93. package/lib/index.js +31 -64
  94. package/lib/lang/index.js +11 -27
  95. package/lib/locals/de.js +1 -6
  96. package/lib/locals/en.js +1 -6
  97. package/lib/locals/fr.js +1 -6
  98. package/lib/locals/zh-CN.js +1 -6
  99. package/{es/components/toast → lib/toaster}/alert.js +0 -0
  100. package/{es/components/toast → lib/toaster}/index.js +0 -0
  101. package/{es/components/toast → lib/toaster}/toast.js +0 -0
  102. package/{es/components/toast → lib/toaster}/toastManager.js +0 -0
  103. package/{es/components/toast → lib/toaster}/toaster.js +0 -0
  104. package/lib/utils/cell-value-validator.js +4 -14
  105. package/lib/utils/column-utils.js +5 -13
  106. package/lib/utils/editor-utils.js +3 -13
  107. package/lib/utils/markdown2html.js +1 -7
  108. package/lib/utils/normalize-long-text-value.js +1 -6
  109. package/lib/utils/number-precision.js +14 -31
  110. package/lib/utils/utils.js +8 -33
  111. package/lib/utils/value-format-utils.js +60 -108
  112. package/package.json +5 -5
  113. package/es/app.css +0 -20
  114. package/es/app.js +0 -91
  115. package/es/assets/images/avatar/default_avatar.png +0 -0
  116. package/es/assets/images/file/192/excel.png +0 -0
  117. package/es/assets/images/file/192/file.png +0 -0
  118. package/es/assets/images/file/192/music.png +0 -0
  119. package/es/assets/images/file/192/pdf.png +0 -0
  120. package/es/assets/images/file/192/pic.png +0 -0
  121. package/es/assets/images/file/192/ppt.png +0 -0
  122. package/es/assets/images/file/192/txt.png +0 -0
  123. package/es/assets/images/file/192/video.png +0 -0
  124. package/es/assets/images/file/192/word.png +0 -0
  125. package/es/assets/images/file/24/excel.png +0 -0
  126. package/es/assets/images/file/24/file.png +0 -0
  127. package/es/assets/images/file/24/music.png +0 -0
  128. package/es/assets/images/file/24/pdf.png +0 -0
  129. package/es/assets/images/file/24/pic.png +0 -0
  130. package/es/assets/images/file/24/ppt.png +0 -0
  131. package/es/assets/images/file/24/txt.png +0 -0
  132. package/es/assets/images/file/24/video.png +0 -0
  133. package/es/assets/images/file/24/word.png +0 -0
  134. package/es/assets/images/folder/folder-192.png +0 -0
  135. package/es/assets/images/folder/folder-24.png +0 -0
  136. package/es/components/cell-editor/checkbox-editor.js +0 -104
  137. package/es/components/cell-editor/collaborator-editor.js +0 -236
  138. package/es/components/cell-editor/date-editor.js +0 -151
  139. package/es/components/cell-editor/index.js +0 -9
  140. package/es/components/cell-editor/link-editor.js +0 -303
  141. package/es/components/cell-editor/multiple-select-editor.js +0 -237
  142. package/es/components/cell-editor/number-editor.js +0 -154
  143. package/es/components/cell-editor/single-select-editor.js +0 -202
  144. package/es/components/cell-editor/text-editor.js +0 -122
  145. package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +0 -46
  146. package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
  147. package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
  148. package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
  149. package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
  150. package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +0 -177
  151. package/es/components/cell-editor-popover/mb-date-editor-popover.js +0 -245
  152. package/es/components/cell-editor-popover/mb-link-editor-popover.js +0 -170
  153. package/es/components/cell-editor-popover/mb-select-editor-popover.js +0 -230
  154. package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +0 -109
  155. package/es/components/cell-editor-popover/pc-date-editor-popover.js +0 -142
  156. package/es/components/cell-editor-popover/pc-link-editor-popover.js +0 -114
  157. package/es/components/cell-editor-popover/pc-select-editor-popover.js +0 -143
  158. package/es/components/cell-formatter/formatter-config.js +0 -31
  159. package/es/components/cell-formatter/index.js +0 -27
  160. package/es/components/common/edit-editor-button.js +0 -56
  161. package/es/components/common/link-editor-option.js +0 -113
  162. package/es/components/common/mobile/mb-editor-header.js +0 -48
  163. package/es/components/common/select-editor-option.js +0 -106
  164. package/es/constants/cell-types.js +0 -25
  165. package/es/constants/index.js +0 -48
  166. package/es/css/cell-editor.css +0 -614
  167. package/es/css/cell-formatter.css +0 -247
  168. package/es/css/custom-rc-calendar.css +0 -118
  169. package/es/index.js +0 -6
  170. package/es/lang/index.js +0 -50
  171. package/es/locals/de.js +0 -2
  172. package/es/locals/en.js +0 -17
  173. package/es/locals/fr.js +0 -2
  174. package/es/locals/zh-CN.js +0 -17
  175. package/es/utils/cell-value-validator.js +0 -32
  176. package/es/utils/column-utils.js +0 -7
  177. package/es/utils/editor-utils.js +0 -71
  178. package/es/utils/markdown2html.js +0 -62
  179. package/es/utils/normalize-long-text-value.js +0 -69
  180. package/es/utils/number-precision.js +0 -163
  181. package/es/utils/unified/index.js +0 -470
  182. package/es/utils/utils.js +0 -116
  183. package/es/utils/value-format-utils.js +0 -495
  184. package/es/utils/vfile/core.js +0 -172
  185. package/es/utils/vfile/index.js +0 -48
  186. package/lib/components/cell-factory/cell-formatter-factory.js +0 -28
  187. package/lib/components/cell-formatter/auto-number-formatter.js +0 -45
  188. package/lib/components/cell-formatter/button-formatter.js +0 -66
  189. package/lib/components/cell-formatter/checkbox-formatter.js +0 -56
  190. package/lib/components/cell-formatter/collaborator-formatter.js +0 -111
  191. package/lib/components/cell-formatter/creator-formatter.js +0 -105
  192. package/lib/components/cell-formatter/ctime-formatter.js +0 -70
  193. package/lib/components/cell-formatter/date-formatter.js +0 -73
  194. package/lib/components/cell-formatter/duration-formatter.js +0 -49
  195. package/lib/components/cell-formatter/email-formatter.js +0 -45
  196. package/lib/components/cell-formatter/file-formatter.js +0 -77
  197. package/lib/components/cell-formatter/formatter-config.js +0 -66
  198. package/lib/components/cell-formatter/formula-formatter.js +0 -189
  199. package/lib/components/cell-formatter/geolocation-formatter.js +0 -66
  200. package/lib/components/cell-formatter/image-formatter.js +0 -171
  201. package/lib/components/cell-formatter/index.js +0 -112
  202. package/lib/components/cell-formatter/last-modifier-formatter.js +0 -105
  203. package/lib/components/cell-formatter/link-formatter.js +0 -165
  204. package/lib/components/cell-formatter/long-text-formatter.js +0 -46
  205. package/lib/components/cell-formatter/mtime-formatter.js +0 -70
  206. package/lib/components/cell-formatter/multiple-select-formatter.js +0 -84
  207. package/lib/components/cell-formatter/number-formatter.js +0 -60
  208. package/lib/components/cell-formatter/rate-formatter.js +0 -93
  209. package/lib/components/cell-formatter/single-select-formatter.js +0 -84
  210. package/lib/components/cell-formatter/text-formatter.js +0 -67
  211. package/lib/components/cell-formatter/url-formatter.js +0 -45
  212. package/lib/components/cell-formatter/widgets/file-item-formatter.js +0 -63
  213. package/lib/components/cell-formatter/widgets/image-previewer-lightbox.js +0 -152
  214. package/lib/components/cell-formatter/widgets/long-text-formatter/html-long-text-formatter.js +0 -107
  215. package/lib/components/cell-formatter/widgets/long-text-formatter/simple-long-text-formatter.js +0 -110
  216. package/lib/components/common/images-lazy-load.js +0 -158
  217. package/lib/components/common/modal-portal.js +0 -51
  218. package/lib/components/common/select-item.js +0 -73
  219. package/lib/components/file-uploader/index.js +0 -63
  220. package/lib/components/loading.js +0 -16
  221. package/lib/components/toast/alert.js +0 -164
  222. package/lib/components/toast/index.js +0 -12
  223. package/lib/components/toast/toast.js +0 -223
  224. package/lib/components/toast/toastManager.js +0 -189
  225. package/lib/components/toast/toaster.js +0 -92
  226. package/lib/css/image-previewer-ligntbox.css +0 -87
  227. package/lib/css/loading.css +0 -54
@@ -1,303 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React, { Fragment } from 'react';
6
- import MediaQuery from 'react-responsive';
7
- import { getLocale } from '../../lang';
8
- import * as CellTypes from '../../constants/cell-types';
9
- import { getNumberDisplayString, getDateDisplayString } from '../../utils/value-format-utils';
10
- import EditEditorButton from '../common/edit-editor-button';
11
- import LinkEditorOption from '../common/link-editor-option';
12
- import PCLinkEditorPopover from '../cell-editor-popover/pc-link-editor-popover';
13
- import MBLinkEditorPopover from '../cell-editor-popover/mb-link-editor-popover';
14
-
15
- var LinkEditor = /*#__PURE__*/function (_React$Component) {
16
- _inherits(LinkEditor, _React$Component);
17
-
18
- var _super = _createSuper(LinkEditor);
19
-
20
- function LinkEditor(props) {
21
- var _this;
22
-
23
- _classCallCheck(this, LinkEditor);
24
-
25
- _this = _super.call(this, props);
26
-
27
- _this.onDocumentToggle = function (e) {
28
- if (_this.editorContainer !== e.target && !_this.editorContainer.contains(e.target)) {
29
- _this.onClosePopover();
30
- }
31
- };
32
-
33
- _this.getLinkedCellValue = function () {
34
- var _this$props = _this.props,
35
- row = _this$props.row,
36
- column = _this$props.column,
37
- linkMetaData = _this$props.linkMetaData;
38
-
39
- var _ref = column.data || {},
40
- link_id = _ref.link_id,
41
- table_id = _ref.table_id,
42
- other_table_id = _ref.other_table_id;
43
-
44
- _this.linkId = link_id;
45
- _this.tableId = table_id;
46
- _this.otherTableId = other_table_id;
47
- return linkMetaData.getLinkedCellValue(_this.linkId, _this.tableId, _this.otherTableId, row._id);
48
- };
49
-
50
- _this.formatLinkedValuesToOptions = function () {
51
- var _this$props2 = _this.props,
52
- column = _this$props2.column,
53
- linkMetaData = _this$props2.linkMetaData;
54
- var rowIds = _this.state.newValue;
55
-
56
- if (rowIds && Array.isArray(rowIds) && rowIds.length > 0) {
57
- var linkedRows = linkMetaData.getLinkedRows(_this.otherTableId, rowIds);
58
- var linkedTable = linkMetaData.getLinkedTable(_this.otherTableId);
59
- return linkedRows.map(function (linkedRow) {
60
- var displayColumnKey = column.data.display_column_key; // format value to display
61
-
62
- var displayValue = _this.getDisplayValue(linkedTable, linkedRow, displayColumnKey);
63
-
64
- return {
65
- id: linkedRow._id,
66
- name: displayValue
67
- };
68
- });
69
- }
70
-
71
- return [];
72
- };
73
-
74
- _this.getDisplayValue = function (linkedTable, linkedRow, displayColumnKey) {
75
- var value = linkedRow[displayColumnKey];
76
- var linkedColumn = linkedTable.columns.find(function (column) {
77
- return column.key === displayColumnKey;
78
- });
79
- var type = linkedColumn.type,
80
- data = linkedColumn.data;
81
-
82
- switch (type) {
83
- case CellTypes.NUMBER:
84
- {
85
- return getNumberDisplayString(value, data);
86
- }
87
-
88
- case CellTypes.DATE:
89
- {
90
- var format = data.format;
91
- return getDateDisplayString(value, format);
92
- }
93
-
94
- default:
95
- return value;
96
- }
97
- };
98
-
99
- _this.getAvailableLinkedOptions = function () {
100
- var _this$props3 = _this.props,
101
- column = _this$props3.column,
102
- linkMetaData = _this$props3.linkMetaData;
103
- var displayColumnKey = column.data.display_column_key;
104
- var linkedTable = linkMetaData.getLinkedTable(_this.otherTableId);
105
- var availableRows = linkedTable.rows.filter(function (row) {
106
- return !!row[displayColumnKey];
107
- });
108
- var availableOptions = availableRows.map(function (row) {
109
- var displayValue = _this.getDisplayValue(linkedTable, row, displayColumnKey);
110
-
111
- return {
112
- id: row._id,
113
- name: displayValue
114
- };
115
- });
116
- return availableOptions;
117
- };
118
-
119
- _this.onCommit = function (newValue) {// nothing todo
120
- };
121
-
122
- _this.onAddOptionToggle = function (event) {
123
- event.nativeEvent.stopImmediatePropagation();
124
- event.stopPropagation();
125
-
126
- if (_this.props.isReadOnly) {
127
- return;
128
- }
129
-
130
- var isPopoverShow = !_this.state.isPopoverShow;
131
-
132
- if (isPopoverShow) {
133
- var popoverPosition = _this.caculatePopoverPosition();
134
-
135
- _this.setState({
136
- isPopoverShow: isPopoverShow,
137
- popoverPosition: popoverPosition
138
- });
139
- } else {
140
- _this.setState({
141
- isPopoverShow: isPopoverShow
142
- });
143
- }
144
- };
145
-
146
- _this.onOptionItemToggle = function (option) {
147
- var _this$props4 = _this.props,
148
- row = _this$props4.row,
149
- linkMetaData = _this$props4.linkMetaData;
150
-
151
- var newValue = _this.state.newValue.slice();
152
-
153
- var optionIndex = newValue.findIndex(function (option_id) {
154
- return option_id === option.id;
155
- });
156
-
157
- if (optionIndex !== -1) {
158
- newValue.splice(optionIndex, 1);
159
- linkMetaData.removeLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
160
- } else {
161
- newValue.push(option.id);
162
- linkMetaData.addLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
163
- }
164
-
165
- _this.setState({
166
- newValue: newValue
167
- });
168
- };
169
-
170
- _this.onDeleteOption = function (option) {
171
- var _this$props5 = _this.props,
172
- row = _this$props5.row,
173
- linkMetaData = _this$props5.linkMetaData;
174
-
175
- var newValue = _this.state.newValue.slice();
176
-
177
- var optionIndex = newValue.findIndex(function (option_id) {
178
- return option_id === option.id;
179
- });
180
- newValue.splice(optionIndex, 1);
181
-
182
- _this.setState({
183
- newValue: newValue
184
- }, function () {
185
- linkMetaData.removeLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
186
- });
187
- };
188
-
189
- _this.caculatePopoverPosition = function () {
190
- var POPOVER_MAX_HEIGHT = 200;
191
- var innerHeight = window.innerHeight;
192
-
193
- var _this$editor$getClien = _this.editor.getClientRects()[0],
194
- top = _this$editor$getClien.top,
195
- height = _this$editor$getClien.height;
196
-
197
- var isBelow = innerHeight - (top + height) > POPOVER_MAX_HEIGHT;
198
- var position = {
199
- top: height + 1,
200
- left: 0
201
- };
202
-
203
- if (!isBelow) {
204
- var bottom = height + 1;
205
- position = {
206
- bottom: bottom,
207
- left: 0
208
- };
209
- }
210
-
211
- return position;
212
- };
213
-
214
- _this.onClosePopover = function () {
215
- _this.setState({
216
- isPopoverShow: false
217
- });
218
- };
219
-
220
- _this.setEditorContainerRef = function (editorContainer) {
221
- _this.editorContainer = editorContainer;
222
- };
223
-
224
- _this.setEditorRef = function (editor) {
225
- _this.editor = editor;
226
- };
227
-
228
- _this.linkId = '';
229
- _this.tableId = '';
230
- _this.otherTableId = '';
231
- _this.state = {
232
- newValue: _this.getLinkedCellValue(),
233
- isPopoverShow: false,
234
- popoverPosition: {}
235
- };
236
- return _this;
237
- }
238
-
239
- _createClass(LinkEditor, [{
240
- key: "componentDidMount",
241
- value: function componentDidMount() {
242
- document.addEventListener('click', this.onDocumentToggle);
243
- }
244
- }, {
245
- key: "componentWillUnmount",
246
- value: function componentWillUnmount() {
247
- document.removeEventListener('click', this.onDocumentToggle);
248
- }
249
- }, {
250
- key: "render",
251
- value: function render() {
252
- var _this2 = this;
253
-
254
- var isReadOnly = this.props.isReadOnly;
255
- var _this$state = this.state,
256
- isPopoverShow = _this$state.isPopoverShow,
257
- popoverPosition = _this$state.popoverPosition;
258
- var options = this.getAvailableLinkedOptions();
259
- var selectedOptions = this.formatLinkedValuesToOptions();
260
- var isShowRemoveIcon = !isReadOnly;
261
- return /*#__PURE__*/React.createElement("div", {
262
- ref: this.setEditorContainerRef,
263
- className: "cell-editor dtable-ui-link-editor"
264
- }, /*#__PURE__*/React.createElement("div", {
265
- ref: this.setEditorRef,
266
- className: "dtable-ui-link-editor-container",
267
- onClick: this.onAddOptionToggle
268
- }, selectedOptions.length === 0 && /*#__PURE__*/React.createElement(EditEditorButton, {
269
- text: getLocale('Add_an_option')
270
- }), selectedOptions.length !== 0 && selectedOptions.map(function (option) {
271
- return /*#__PURE__*/React.createElement(LinkEditorOption, {
272
- key: option.id,
273
- option: option,
274
- isShowRemoveIcon: isShowRemoveIcon,
275
- onDeleteLinkOption: _this2.onDeleteOption
276
- });
277
- })), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
278
- query: "(min-width: 768px)"
279
- }, /*#__PURE__*/React.createElement(PCLinkEditorPopover, {
280
- popoverPosition: popoverPosition,
281
- options: options,
282
- selectedOptions: selectedOptions,
283
- onOptionItemToggle: this.onOptionItemToggle
284
- })), /*#__PURE__*/React.createElement(MediaQuery, {
285
- query: "(max-width: 767.8px)"
286
- }, /*#__PURE__*/React.createElement(MBLinkEditorPopover, {
287
- isReadOnly: this.props.isReadOnly,
288
- value: this.state.newValue,
289
- column: this.props.column,
290
- options: options,
291
- onOptionItemToggle: this.onOptionItemToggle,
292
- onClosePopover: this.onClosePopover
293
- }))));
294
- }
295
- }]);
296
-
297
- return LinkEditor;
298
- }(React.Component);
299
-
300
- LinkEditor.defaultProps = {
301
- isReadOnly: false
302
- };
303
- export default LinkEditor;
@@ -1,237 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React, { Fragment } from 'react';
6
- import MediaQuery from 'react-responsive';
7
- import { getLocale } from '../../lang';
8
- import EditEditorButton from '../common/edit-editor-button';
9
- import SelectEditorOption from '../common/select-editor-option';
10
- import PCSelectEditorPopover from '../cell-editor-popover/pc-select-editor-popover';
11
- import MBSingleSelectPopover from '../cell-editor-popover/mb-select-editor-popover';
12
-
13
- var MultipleSelectEditor = /*#__PURE__*/function (_React$Component) {
14
- _inherits(MultipleSelectEditor, _React$Component);
15
-
16
- var _super = _createSuper(MultipleSelectEditor);
17
-
18
- function MultipleSelectEditor(props) {
19
- var _this;
20
-
21
- _classCallCheck(this, MultipleSelectEditor);
22
-
23
- _this = _super.call(this, props);
24
-
25
- _this.onDocumentToggle = function (e) {
26
- if (_this.editorContainer !== e.target && !_this.editorContainer.contains(e.target)) {
27
- _this.onClosePopover();
28
- }
29
- };
30
-
31
- _this.getFormattedOptions = function () {
32
- var newValue = _this.state.newValue;
33
-
34
- if (Array.isArray(newValue) && newValue.length > 0) {
35
- return newValue.map(function (option_id) {
36
- return _this.options.find(function (option) {
37
- return option.id === option_id;
38
- });
39
- }).filter(function (option) {
40
- return !!option;
41
- });
42
- }
43
-
44
- return [];
45
- };
46
-
47
- _this.onAddOptionToggle = function (event) {
48
- event.nativeEvent.stopImmediatePropagation();
49
- event.stopPropagation();
50
-
51
- if (_this.props.isReadOnly) {
52
- return;
53
- }
54
-
55
- var isPopoverShow = !_this.state.isPopoverShow;
56
-
57
- if (isPopoverShow) {
58
- var popoverPosition = _this.caculatePopoverPosition();
59
-
60
- _this.setState({
61
- isPopoverShow: isPopoverShow,
62
- popoverPosition: popoverPosition
63
- });
64
- } else {
65
- _this.setState({
66
- isPopoverShow: isPopoverShow
67
- });
68
- }
69
- };
70
-
71
- _this.onCommit = function (newValue) {
72
- var updated = {};
73
- var column = _this.props.column;
74
- updated[column.key] = newValue;
75
-
76
- _this.props.onCommit(updated);
77
- };
78
-
79
- _this.onOptionItemToggle = function (option) {
80
- var newValue = _this.state.newValue.slice();
81
-
82
- var optionIndex = newValue.findIndex(function (option_id) {
83
- return option_id === option.id;
84
- });
85
-
86
- if (optionIndex !== -1) {
87
- newValue.splice(optionIndex, 1);
88
- } else {
89
- newValue.push(option.id);
90
- }
91
-
92
- _this.setState({
93
- newValue: newValue
94
- }, function () {
95
- _this.onCommit(newValue);
96
- });
97
- };
98
-
99
- _this.onDeleteOption = function (option) {
100
- var newValue = _this.state.newValue.slice();
101
-
102
- var optionIndex = newValue.findIndex(function (option_id) {
103
- return option_id === option.id;
104
- });
105
- newValue.splice(optionIndex, 1);
106
-
107
- _this.setState({
108
- newValue: newValue
109
- }, function () {
110
- _this.onCommit(newValue);
111
- });
112
- };
113
-
114
- _this.onAddNewOption = function (optionName) {
115
- _this.props.onAddNewOption(optionName);
116
-
117
- _this.onClosePopover();
118
- };
119
-
120
- _this.caculatePopoverPosition = function () {
121
- var POPOVER_MAX_HEIGHT = 200;
122
- var innerHeight = window.innerHeight;
123
-
124
- var _this$editor$getClien = _this.editor.getClientRects()[0],
125
- top = _this$editor$getClien.top,
126
- height = _this$editor$getClien.height;
127
-
128
- var isBelow = innerHeight - (top + height) > POPOVER_MAX_HEIGHT;
129
- var position = {
130
- top: height + 1,
131
- left: 0
132
- };
133
-
134
- if (!isBelow) {
135
- var bottom = height + 1;
136
- position = {
137
- bottom: bottom,
138
- left: 0
139
- };
140
- }
141
-
142
- return position;
143
- };
144
-
145
- _this.onClosePopover = function () {
146
- _this.setState({
147
- isPopoverShow: false
148
- });
149
- };
150
-
151
- _this.setEditorContainerRef = function (editorContainer) {
152
- _this.editorContainer = editorContainer;
153
- };
154
-
155
- _this.setEditorRef = function (editor) {
156
- _this.editor = editor;
157
- };
158
-
159
- _this.state = {
160
- newValue: Array.isArray(props.value) ? props.value : [],
161
- isPopoverShow: false,
162
- popoverPosition: {}
163
- };
164
- var _column = _this.props.column;
165
- _this.options = _column.data && (_column.data.options || []);
166
- return _this;
167
- }
168
-
169
- _createClass(MultipleSelectEditor, [{
170
- key: "componentDidMount",
171
- value: function componentDidMount() {
172
- document.addEventListener('click', this.onDocumentToggle);
173
- }
174
- }, {
175
- key: "componentWillUnmount",
176
- value: function componentWillUnmount() {
177
- document.removeEventListener('click', this.onDocumentToggle);
178
- }
179
- }, {
180
- key: "render",
181
- value: function render() {
182
- var _this2 = this;
183
-
184
- var _this$state = this.state,
185
- isPopoverShow = _this$state.isPopoverShow,
186
- popoverPosition = _this$state.popoverPosition;
187
- var options = this.options;
188
- var selectedOptions = this.getFormattedOptions();
189
- return /*#__PURE__*/React.createElement("div", {
190
- ref: this.setEditorContainerRef,
191
- className: "cell-editor dtable-ui-multiple-select-editor"
192
- }, /*#__PURE__*/React.createElement("div", {
193
- ref: this.setEditorRef,
194
- className: "dtable-ui-select-editor-container",
195
- onClick: this.onAddOptionToggle
196
- }, selectedOptions.length === 0 && /*#__PURE__*/React.createElement(EditEditorButton, {
197
- text: getLocale('Add_an_option')
198
- }), selectedOptions.length !== 0 && selectedOptions.map(function (option) {
199
- return /*#__PURE__*/React.createElement(SelectEditorOption, {
200
- key: option.id,
201
- option: option,
202
- isShowRemoveIcon: true,
203
- onDeleteSelectOption: _this2.onDeleteOption
204
- });
205
- })), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
206
- query: "(min-width: 768px)"
207
- }, /*#__PURE__*/React.createElement(PCSelectEditorPopover, {
208
- popoverPosition: popoverPosition,
209
- options: options,
210
- selectedOptions: selectedOptions,
211
- onOptionItemToggle: this.onOptionItemToggle,
212
- isSupportNewOption: this.props.isSupportNewOption,
213
- onAddNewOption: this.onAddNewOption
214
- })), /*#__PURE__*/React.createElement(MediaQuery, {
215
- query: "(max-width: 767.8px)"
216
- }, /*#__PURE__*/React.createElement(MBSingleSelectPopover, {
217
- isReadOnly: this.props.isReadOnly,
218
- value: this.state.newValue,
219
- column: this.props.column,
220
- options: options,
221
- onOptionItemToggle: this.onOptionItemToggle,
222
- isShowRemoveIcon: true,
223
- isSupportNewOption: this.props.isSupportNewOption,
224
- onAddNewOption: this.onAddNewOption,
225
- onClosePopover: this.onClosePopover
226
- }))));
227
- }
228
- }]);
229
-
230
- return MultipleSelectEditor;
231
- }(React.Component);
232
-
233
- MultipleSelectEditor.defaultProps = {
234
- isReadOnly: false,
235
- value: []
236
- };
237
- export default MultipleSelectEditor;
@@ -1,154 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import isHotkey from 'is-hotkey';
7
- import { NUMBER_TYPES } from '../../constants';
8
- import { getNumberDisplayString, formatStringToNumber, formatNumberString } from '../../utils/value-format-utils';
9
-
10
- var NumberEditor = /*#__PURE__*/function (_React$Component) {
11
- _inherits(NumberEditor, _React$Component);
12
-
13
- var _super = _createSuper(NumberEditor);
14
-
15
- function NumberEditor(props) {
16
- var _this;
17
-
18
- _classCallCheck(this, NumberEditor);
19
-
20
- _this = _super.call(this, props);
21
-
22
- _this.onEditorHandle = function () {
23
- if (_this.props.isReadOnly) {
24
- return;
25
- }
26
-
27
- _this.setState({
28
- isEditorShow: true,
29
- inputValue: _this.state.textValue
30
- }, function () {
31
- _this.input.focus();
32
- });
33
- };
34
-
35
- _this.onCommit = function () {
36
- var updated = {};
37
- var column = _this.props.column;
38
- var inputValue = _this.state.inputValue ? _this.state.inputValue.toString() : '';
39
- var value = inputValue ? formatStringToNumber(inputValue) : ''; // format the number to submit
40
-
41
- updated[column.key] = value;
42
-
43
- _this.props.onCommit(updated);
44
-
45
- var newValue = getNumberDisplayString(value, column.data); // format the number to display
46
-
47
- _this.setState({
48
- isEditorShow: false,
49
- textValue: newValue
50
- });
51
- };
52
-
53
- _this.onChange = function (event) {
54
- var value = event.target.value.trim();
55
- value = formatNumberString(value, _this.dataFormat); // format the number in changing
56
-
57
- if (value === _this.state.inputValue) {
58
- return;
59
- }
60
-
61
- _this.setState({
62
- inputValue: value
63
- });
64
- };
65
-
66
- _this.onBlur = function () {
67
- _this.onCommit();
68
- };
69
-
70
- _this.onKeyDown = function (event) {
71
- var _event$currentTarget = event.currentTarget,
72
- selectionStart = _event$currentTarget.selectionStart,
73
- selectionEnd = _event$currentTarget.selectionEnd,
74
- value = _event$currentTarget.value;
75
-
76
- if (isHotkey('enter', event)) {
77
- event.preventDefault();
78
-
79
- _this.onBlur();
80
- } else if (event.keyCode === 37 && selectionStart === 0 || event.keyCode === 39 && selectionEnd === value.length) {
81
- event.stopPropagation();
82
- }
83
- };
84
-
85
- _this.onPaste = function (e) {
86
- e.stopPropagation();
87
- };
88
-
89
- _this.onCut = function (e) {
90
- e.stopPropagation();
91
- };
92
-
93
- _this.getStyle = function () {
94
- return {
95
- width: '320px',
96
- textAlign: 'left'
97
- };
98
- };
99
-
100
- _this.setInputRef = function (input) {
101
- _this.input = input;
102
- return _this.input;
103
- };
104
-
105
- var _this$props = _this.props,
106
- _value = _this$props.value,
107
- _column = _this$props.column;
108
- var dataFormat = _column.data && _column.data.format;
109
- _this.dataFormat = dataFormat || NUMBER_TYPES.NUMBER;
110
- var initValue = getNumberDisplayString(_value, _column.data); // format the number to display
111
-
112
- _this.state = {
113
- inputValue: initValue,
114
- textValue: initValue,
115
- isEditorShow: false
116
- };
117
- return _this;
118
- }
119
-
120
- _createClass(NumberEditor, [{
121
- key: "render",
122
- value: function render() {
123
- var style = this.getStyle();
124
- return /*#__PURE__*/React.createElement("div", {
125
- className: "cell-editor number-editor"
126
- }, /*#__PURE__*/React.createElement("div", {
127
- className: "number-editor-container"
128
- }, !this.state.isEditorShow && /*#__PURE__*/React.createElement("div", {
129
- className: "form-control",
130
- style: style,
131
- onClick: this.onEditorHandle
132
- }, this.state.textValue), this.state.isEditorShow && /*#__PURE__*/React.createElement("input", {
133
- ref: this.setInputRef,
134
- type: "text",
135
- className: "form-control",
136
- style: style,
137
- value: this.state.inputValue,
138
- onChange: this.onChange,
139
- onBlur: this.onBlur,
140
- onCut: this.onCut,
141
- onPaste: this.onPaste,
142
- onKeyDown: this.onKeyDown
143
- })));
144
- }
145
- }]);
146
-
147
- return NumberEditor;
148
- }(React.Component);
149
-
150
- NumberEditor.defaultProps = {
151
- isReadOnly: false,
152
- value: ''
153
- };
154
- export default NumberEditor;