dtable-ui-component 0.1.84 → 0.1.85

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 (115) hide show
  1. package/lib/DTablePopover/index.js +115 -0
  2. package/lib/DTablePopover/utils.js +5 -0
  3. package/lib/DTableSelect/index.js +140 -0
  4. package/lib/DTableSwitch/index.js +27 -0
  5. package/lib/FormulaFormatter/index.js +7 -7
  6. package/lib/index.js +5 -1
  7. package/package.json +2 -1
  8. package/es/app.css +0 -20
  9. package/es/app.js +0 -91
  10. package/es/assets/images/avatar/default_avatar.png +0 -0
  11. package/es/assets/images/file/192/excel.png +0 -0
  12. package/es/assets/images/file/192/file.png +0 -0
  13. package/es/assets/images/file/192/music.png +0 -0
  14. package/es/assets/images/file/192/pdf.png +0 -0
  15. package/es/assets/images/file/192/pic.png +0 -0
  16. package/es/assets/images/file/192/ppt.png +0 -0
  17. package/es/assets/images/file/192/txt.png +0 -0
  18. package/es/assets/images/file/192/video.png +0 -0
  19. package/es/assets/images/file/192/word.png +0 -0
  20. package/es/assets/images/file/24/excel.png +0 -0
  21. package/es/assets/images/file/24/file.png +0 -0
  22. package/es/assets/images/file/24/music.png +0 -0
  23. package/es/assets/images/file/24/pdf.png +0 -0
  24. package/es/assets/images/file/24/pic.png +0 -0
  25. package/es/assets/images/file/24/ppt.png +0 -0
  26. package/es/assets/images/file/24/txt.png +0 -0
  27. package/es/assets/images/file/24/video.png +0 -0
  28. package/es/assets/images/file/24/word.png +0 -0
  29. package/es/assets/images/folder/folder-192.png +0 -0
  30. package/es/assets/images/folder/folder-24.png +0 -0
  31. package/es/components/cell-editor/checkbox-editor.js +0 -104
  32. package/es/components/cell-editor/collaborator-editor.js +0 -236
  33. package/es/components/cell-editor/date-editor.js +0 -151
  34. package/es/components/cell-editor/index.js +0 -9
  35. package/es/components/cell-editor/link-editor.js +0 -303
  36. package/es/components/cell-editor/multiple-select-editor.js +0 -237
  37. package/es/components/cell-editor/number-editor.js +0 -154
  38. package/es/components/cell-editor/single-select-editor.js +0 -202
  39. package/es/components/cell-editor/text-editor.js +0 -122
  40. package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +0 -46
  41. package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
  42. package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
  43. package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
  44. package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
  45. package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +0 -177
  46. package/es/components/cell-editor-popover/mb-date-editor-popover.js +0 -245
  47. package/es/components/cell-editor-popover/mb-link-editor-popover.js +0 -170
  48. package/es/components/cell-editor-popover/mb-select-editor-popover.js +0 -230
  49. package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +0 -109
  50. package/es/components/cell-editor-popover/pc-date-editor-popover.js +0 -142
  51. package/es/components/cell-editor-popover/pc-link-editor-popover.js +0 -114
  52. package/es/components/cell-editor-popover/pc-select-editor-popover.js +0 -143
  53. package/es/components/cell-factory/cell-formatter-factory.js +0 -25
  54. package/es/components/cell-formatter/auto-number-formatter.js +0 -35
  55. package/es/components/cell-formatter/button-formatter.js +0 -55
  56. package/es/components/cell-formatter/checkbox-formatter.js +0 -44
  57. package/es/components/cell-formatter/collaborator-formatter.js +0 -91
  58. package/es/components/cell-formatter/creator-formatter.js +0 -87
  59. package/es/components/cell-formatter/ctime-formatter.js +0 -57
  60. package/es/components/cell-formatter/date-formatter.js +0 -59
  61. package/es/components/cell-formatter/duration-formatter.js +0 -37
  62. package/es/components/cell-formatter/email-formatter.js +0 -35
  63. package/es/components/cell-formatter/file-formatter.js +0 -63
  64. package/es/components/cell-formatter/formatter-config.js +0 -31
  65. package/es/components/cell-formatter/formula-formatter.js +0 -164
  66. package/es/components/cell-formatter/geolocation-formatter.js +0 -52
  67. package/es/components/cell-formatter/image-formatter.js +0 -153
  68. package/es/components/cell-formatter/index.js +0 -27
  69. package/es/components/cell-formatter/last-modifier-formatter.js +0 -87
  70. package/es/components/cell-formatter/link-formatter.js +0 -144
  71. package/es/components/cell-formatter/long-text-formatter.js +0 -106
  72. package/es/components/cell-formatter/mtime-formatter.js +0 -57
  73. package/es/components/cell-formatter/multiple-select-formatter.js +0 -69
  74. package/es/components/cell-formatter/number-formatter.js +0 -46
  75. package/es/components/cell-formatter/rate-formatter.js +0 -79
  76. package/es/components/cell-formatter/single-select-formatter.js +0 -69
  77. package/es/components/cell-formatter/text-formatter.js +0 -55
  78. package/es/components/cell-formatter/url-formatter.js +0 -35
  79. package/es/components/cell-formatter/widgets/file-item-formatter.js +0 -50
  80. package/es/components/cell-formatter/widgets/image-previewer-lightbox.js +0 -119
  81. package/es/components/common/collaborator-item.js +0 -63
  82. package/es/components/common/edit-editor-button.js +0 -56
  83. package/es/components/common/images-lazy-load.js +0 -150
  84. package/es/components/common/link-editor-option.js +0 -113
  85. package/es/components/common/mobile/mb-editor-header.js +0 -48
  86. package/es/components/common/modal-portal.js +0 -44
  87. package/es/components/common/select-editor-option.js +0 -106
  88. package/es/components/common/select-item.js +0 -58
  89. package/es/components/file-uploader/index.js +0 -53
  90. package/es/components/loading.js +0 -7
  91. package/es/components/toast/alert.js +0 -150
  92. package/es/components/toast/index.js +0 -3
  93. package/es/components/toast/toast.js +0 -179
  94. package/es/components/toast/toastManager.js +0 -170
  95. package/es/components/toast/toaster.js +0 -76
  96. package/es/constants/cell-types.js +0 -25
  97. package/es/constants/index.js +0 -48
  98. package/es/css/cell-editor.css +0 -614
  99. package/es/css/cell-formatter.css +0 -241
  100. package/es/css/custom-rc-calendar.css +0 -118
  101. package/es/css/image-previewer-ligntbox.css +0 -87
  102. package/es/css/loading.css +0 -54
  103. package/es/index.js +0 -6
  104. package/es/lang/index.js +0 -50
  105. package/es/locals/de.js +0 -2
  106. package/es/locals/en.js +0 -17
  107. package/es/locals/fr.js +0 -2
  108. package/es/locals/zh-CN.js +0 -17
  109. package/es/utils/cell-value-validator.js +0 -32
  110. package/es/utils/column-utils.js +0 -7
  111. package/es/utils/editor-utils.js +0 -71
  112. package/es/utils/normalize-long-text-value.js +0 -68
  113. package/es/utils/number-precision.js +0 -163
  114. package/es/utils/utils.js +0 -116
  115. package/es/utils/value-format-utils.js +0 -495
@@ -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;
@@ -1,202 +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 SingleSelectEditor = /*#__PURE__*/function (_React$Component) {
14
- _inherits(SingleSelectEditor, _React$Component);
15
-
16
- var _super = _createSuper(SingleSelectEditor);
17
-
18
- function SingleSelectEditor(props) {
19
- var _this;
20
-
21
- _classCallCheck(this, SingleSelectEditor);
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.formatOption = function () {
32
- var newValue = _this.state.newValue;
33
-
34
- var option = _this.options.find(function (option) {
35
- return option.id === newValue;
36
- });
37
-
38
- return option;
39
- };
40
-
41
- _this.onAddOptionToggle = function (event) {
42
- event.nativeEvent.stopImmediatePropagation();
43
- event.stopPropagation();
44
-
45
- if (_this.props.isReadOnly) {
46
- return;
47
- }
48
-
49
- var isPopoverShow = !_this.state.isPopoverShow;
50
-
51
- if (isPopoverShow) {
52
- var popoverPosition = _this.caculatePopoverPosition();
53
-
54
- _this.setState({
55
- isPopoverShow: isPopoverShow,
56
- popoverPosition: popoverPosition
57
- });
58
- } else {
59
- _this.setState({
60
- isPopoverShow: isPopoverShow
61
- });
62
- }
63
- };
64
-
65
- _this.onCommit = function (newValue) {
66
- var updated = {};
67
- var column = _this.props.column;
68
- updated[column.key] = newValue;
69
-
70
- _this.props.onCommit(updated);
71
- };
72
-
73
- _this.onOptionItemToggle = function (option) {
74
- var newValue = _this.state.newValue === option.id ? '' : option.id;
75
-
76
- _this.setState({
77
- newValue: newValue
78
- }, function () {
79
- _this.onCommit(newValue);
80
-
81
- _this.onClosePopover();
82
- });
83
- };
84
-
85
- _this.caculatePopoverPosition = function () {
86
- var POPOVER_MAX_HEIGHT = 200;
87
- var innerHeight = window.innerHeight;
88
-
89
- var _this$editor$getClien = _this.editor.getClientRects()[0],
90
- top = _this$editor$getClien.top,
91
- height = _this$editor$getClien.height;
92
-
93
- var isBelow = innerHeight - (top + height) > POPOVER_MAX_HEIGHT;
94
- var position = {
95
- top: height + 1,
96
- left: 0
97
- };
98
-
99
- if (!isBelow) {
100
- var bottom = height + 1;
101
- position = {
102
- bottom: bottom,
103
- left: 0
104
- };
105
- }
106
-
107
- return position;
108
- };
109
-
110
- _this.onAddNewOption = function (optionName) {
111
- _this.props.onAddNewOption(optionName);
112
-
113
- _this.onClosePopover();
114
- };
115
-
116
- _this.onClosePopover = function () {
117
- _this.setState({
118
- isPopoverShow: false
119
- });
120
- };
121
-
122
- _this.setEditorContainerRef = function (editorContainer) {
123
- _this.editorContainer = editorContainer;
124
- };
125
-
126
- _this.setEditorRef = function (editor) {
127
- _this.editor = editor;
128
- };
129
-
130
- _this.state = {
131
- newValue: props.value,
132
- isPopoverShow: false,
133
- popoverPosition: {}
134
- };
135
- var _column = _this.props.column;
136
- _this.options = _column.data && (_column.data.options || []);
137
- return _this;
138
- }
139
-
140
- _createClass(SingleSelectEditor, [{
141
- key: "componentDidMount",
142
- value: function componentDidMount() {
143
- document.addEventListener('click', this.onDocumentToggle);
144
- }
145
- }, {
146
- key: "componentWillUnmount",
147
- value: function componentWillUnmount() {
148
- document.removeEventListener('click', this.onDocumentToggle);
149
- }
150
- }, {
151
- key: "render",
152
- value: function render() {
153
- var _this$state = this.state,
154
- isPopoverShow = _this$state.isPopoverShow,
155
- popoverPosition = _this$state.popoverPosition;
156
- var option = this.formatOption();
157
- var options = this.options;
158
- var selectedOptions = option ? [option] : [];
159
- return /*#__PURE__*/React.createElement("div", {
160
- ref: this.setEditorContainerRef,
161
- className: "cell-editor dtable-ui-single-select-editor"
162
- }, /*#__PURE__*/React.createElement("div", {
163
- ref: this.setEditorRef,
164
- className: "dtable-ui-select-editor-container",
165
- onClick: this.onAddOptionToggle
166
- }, option ? /*#__PURE__*/React.createElement(SelectEditorOption, {
167
- option: option
168
- }) : /*#__PURE__*/React.createElement(EditEditorButton, {
169
- text: getLocale('Add_an_option')
170
- })), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
171
- query: "(min-width: 768px)"
172
- }, /*#__PURE__*/React.createElement(PCSelectEditorPopover, {
173
- popoverPosition: popoverPosition,
174
- options: options,
175
- selectedOptions: selectedOptions,
176
- onOptionItemToggle: this.onOptionItemToggle,
177
- isSupportNewOption: this.props.isSupportNewOption,
178
- onAddNewOption: this.onAddNewOption
179
- })), /*#__PURE__*/React.createElement(MediaQuery, {
180
- query: "(max-width: 767.8px)"
181
- }, /*#__PURE__*/React.createElement(MBSingleSelectPopover, {
182
- isReadOnly: this.props.isReadOnly,
183
- value: [this.state.newValue],
184
- column: this.props.column,
185
- options: options,
186
- onOptionItemToggle: this.onOptionItemToggle,
187
- isShowRemoveIcon: true,
188
- isSupportNewOption: this.props.isSupportNewOption,
189
- onAddNewOption: this.onAddNewOption,
190
- onClosePopover: this.onClosePopover
191
- }))));
192
- }
193
- }]);
194
-
195
- return SingleSelectEditor;
196
- }(React.Component);
197
-
198
- SingleSelectEditor.defaultProps = {
199
- isReadOnly: false,
200
- value: ''
201
- };
202
- export default SingleSelectEditor;
@@ -1,122 +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
-
8
- var TextEditor = /*#__PURE__*/function (_React$Component) {
9
- _inherits(TextEditor, _React$Component);
10
-
11
- var _super = _createSuper(TextEditor);
12
-
13
- function TextEditor(props) {
14
- var _this;
15
-
16
- _classCallCheck(this, TextEditor);
17
-
18
- _this = _super.call(this, props);
19
-
20
- _this.onCommit = function () {
21
- var updated = {};
22
- var column = _this.props.column;
23
- var newValue = _this.state.newValue;
24
- updated[column.key] = newValue ? newValue.trim() : '';
25
-
26
- _this.props.onCommit(updated);
27
-
28
- _this.setState({
29
- isEditorShow: false
30
- });
31
- };
32
-
33
- _this.onBlur = function () {
34
- _this.onCommit();
35
- };
36
-
37
- _this.onChange = function (event) {
38
- var value = event.target.value;
39
-
40
- _this.setState({
41
- newValue: value
42
- });
43
- };
44
-
45
- _this.onEditorhandle = function () {
46
- if (_this.props.isReadOnly) {
47
- return;
48
- }
49
-
50
- _this.setState({
51
- isEditorShow: true
52
- }, function () {
53
- _this.input.focus();
54
- });
55
- };
56
-
57
- _this.onKeyDown = function (event) {
58
- var _event$currentTarget = event.currentTarget,
59
- selectionStart = _event$currentTarget.selectionStart,
60
- selectionEnd = _event$currentTarget.selectionEnd,
61
- value = _event$currentTarget.value;
62
-
63
- if (isHotkey('enter', event)) {
64
- event.preventDefault();
65
-
66
- _this.onBlur();
67
- } else if (event.keyCode === 37 && selectionStart === 0 || event.keyCode === 39 && selectionEnd === value.length) {
68
- event.stopPropagation();
69
- }
70
- };
71
-
72
- _this.onPaste = function (e) {
73
- e.stopPropagation();
74
- };
75
-
76
- _this.onCut = function (e) {
77
- e.stopPropagation();
78
- };
79
-
80
- _this.setInputRef = function (input) {
81
- _this.input = input;
82
- };
83
-
84
- _this.state = {
85
- newValue: props.value,
86
- isEditorShow: false
87
- };
88
- return _this;
89
- }
90
-
91
- _createClass(TextEditor, [{
92
- key: "render",
93
- value: function render() {
94
- return /*#__PURE__*/React.createElement("div", {
95
- className: "cell-editor text-editor"
96
- }, /*#__PURE__*/React.createElement("div", {
97
- className: "text-editor-container"
98
- }, !this.state.isEditorShow && /*#__PURE__*/React.createElement("div", {
99
- className: "form-control",
100
- onClick: this.onEditorhandle
101
- }, this.state.newValue), this.state.isEditorShow && /*#__PURE__*/React.createElement("input", {
102
- ref: this.setInputRef,
103
- type: "text",
104
- className: "form-control",
105
- value: this.state.newValue,
106
- onChange: this.onChange,
107
- onKeyDown: this.onKeyDown,
108
- onBlur: this.onBlur,
109
- onCut: this.onCut,
110
- onPaste: this.onPaste
111
- })));
112
- }
113
- }]);
114
-
115
- return TextEditor;
116
- }(React.Component);
117
-
118
- TextEditor.defaultProps = {
119
- isReadOnly: false,
120
- value: ''
121
- };
122
- export default TextEditor;