dtable-ui-component 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/es/app.css +20 -0
  2. package/es/app.js +91 -0
  3. package/es/assets/images/avatar/default_avatar.png +0 -0
  4. package/es/assets/images/file/192/excel.png +0 -0
  5. package/es/assets/images/file/192/file.png +0 -0
  6. package/es/assets/images/file/192/music.png +0 -0
  7. package/es/assets/images/file/192/pdf.png +0 -0
  8. package/es/assets/images/file/192/pic.png +0 -0
  9. package/es/assets/images/file/192/ppt.png +0 -0
  10. package/es/assets/images/file/192/txt.png +0 -0
  11. package/es/assets/images/file/192/video.png +0 -0
  12. package/es/assets/images/file/192/word.png +0 -0
  13. package/es/assets/images/file/24/excel.png +0 -0
  14. package/es/assets/images/file/24/file.png +0 -0
  15. package/es/assets/images/file/24/music.png +0 -0
  16. package/es/assets/images/file/24/pdf.png +0 -0
  17. package/es/assets/images/file/24/pic.png +0 -0
  18. package/es/assets/images/file/24/ppt.png +0 -0
  19. package/es/assets/images/file/24/txt.png +0 -0
  20. package/es/assets/images/file/24/video.png +0 -0
  21. package/es/assets/images/file/24/word.png +0 -0
  22. package/es/assets/images/folder/folder-192.png +0 -0
  23. package/es/assets/images/folder/folder-24.png +0 -0
  24. package/es/components/cell-editor/checkbox-editor.js +104 -0
  25. package/es/components/cell-editor/collaborator-editor.js +236 -0
  26. package/es/components/cell-editor/date-editor.js +151 -0
  27. package/es/components/cell-editor/index.js +9 -0
  28. package/es/components/cell-editor/link-editor.js +303 -0
  29. package/es/components/cell-editor/multiple-select-editor.js +237 -0
  30. package/es/components/cell-editor/number-editor.js +154 -0
  31. package/es/components/cell-editor/single-select-editor.js +202 -0
  32. package/es/components/cell-editor/text-editor.js +122 -0
  33. package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +46 -0
  34. package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
  35. package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
  36. package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
  37. package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
  38. package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +177 -0
  39. package/es/components/cell-editor-popover/mb-date-editor-popover.js +245 -0
  40. package/es/components/cell-editor-popover/mb-link-editor-popover.js +170 -0
  41. package/es/components/cell-editor-popover/mb-select-editor-popover.js +230 -0
  42. package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +109 -0
  43. package/es/components/cell-editor-popover/pc-date-editor-popover.js +142 -0
  44. package/es/components/cell-editor-popover/pc-link-editor-popover.js +114 -0
  45. package/es/components/cell-editor-popover/pc-select-editor-popover.js +143 -0
  46. package/es/components/cell-factory/cell-formatter-factory.js +25 -0
  47. package/es/components/cell-formatter/auto-number-formatter.js +35 -0
  48. package/es/components/cell-formatter/button-formatter.js +55 -0
  49. package/es/components/cell-formatter/checkbox-formatter.js +44 -0
  50. package/es/components/cell-formatter/collaborator-formatter.js +91 -0
  51. package/es/components/cell-formatter/creator-formatter.js +87 -0
  52. package/es/components/cell-formatter/ctime-formatter.js +57 -0
  53. package/es/components/cell-formatter/date-formatter.js +59 -0
  54. package/es/components/cell-formatter/duration-formatter.js +37 -0
  55. package/es/components/cell-formatter/email-formatter.js +35 -0
  56. package/es/components/cell-formatter/file-formatter.js +63 -0
  57. package/es/components/cell-formatter/formatter-config.js +31 -0
  58. package/es/components/cell-formatter/formula-formatter.js +173 -0
  59. package/es/components/cell-formatter/geolocation-formatter.js +49 -0
  60. package/es/components/cell-formatter/image-formatter.js +153 -0
  61. package/es/components/cell-formatter/index.js +26 -0
  62. package/es/components/cell-formatter/last-modifier-formatter.js +87 -0
  63. package/es/components/cell-formatter/link-formatter.js +144 -0
  64. package/es/components/cell-formatter/long-text-formatter.js +106 -0
  65. package/es/components/cell-formatter/mtime-formatter.js +57 -0
  66. package/es/components/cell-formatter/multiple-select-formatter.js +70 -0
  67. package/es/components/cell-formatter/number-formatter.js +46 -0
  68. package/es/components/cell-formatter/rate-formatter.js +74 -0
  69. package/es/components/cell-formatter/single-select-formatter.js +69 -0
  70. package/es/components/cell-formatter/text-formatter.js +35 -0
  71. package/es/components/cell-formatter/url-formatter.js +35 -0
  72. package/es/components/cell-formatter/widgets/file-item-formatter.js +50 -0
  73. package/es/components/cell-formatter/widgets/image-previewer-lightbox.js +119 -0
  74. package/es/components/common/collaborator-item.js +63 -0
  75. package/es/components/common/edit-editor-button.js +56 -0
  76. package/es/components/common/images-lazy-load.js +148 -0
  77. package/es/components/common/link-editor-option.js +113 -0
  78. package/es/components/common/mobile/mb-editor-header.js +48 -0
  79. package/es/components/common/modal-portal.js +44 -0
  80. package/es/components/common/select-editor-option.js +106 -0
  81. package/es/components/common/select-item.js +58 -0
  82. package/es/components/file-uploader/index.js +53 -0
  83. package/es/components/loading.js +7 -0
  84. package/es/components/toast/alert.js +150 -0
  85. package/es/components/toast/index.js +3 -0
  86. package/es/components/toast/toast.js +179 -0
  87. package/es/components/toast/toastManager.js +170 -0
  88. package/es/components/toast/toaster.js +76 -0
  89. package/es/css/cell-editor.css +614 -0
  90. package/es/css/cell-formatter.css +241 -0
  91. package/es/css/custom-rc-calendar.css +118 -0
  92. package/es/css/image-previewer-ligntbox.css +87 -0
  93. package/es/css/loading.css +54 -0
  94. package/es/index.js +5 -0
  95. package/es/lang/index.js +50 -0
  96. package/es/locals/de.js +2 -0
  97. package/es/locals/en.js +17 -0
  98. package/es/locals/fr.js +2 -0
  99. package/es/locals/zh-CN.js +17 -0
  100. package/es/utils/cell-types.js +25 -0
  101. package/es/utils/constants.js +41 -0
  102. package/es/utils/editor-utils.js +71 -0
  103. package/es/utils/normalize-long-text-value.js +68 -0
  104. package/es/utils/number-precision.js +163 -0
  105. package/es/utils/utils.js +116 -0
  106. package/es/utils/value-format-utils.js +281 -0
  107. package/lib/AutoNumberFormatter/index.js +3 -0
  108. package/lib/ButtonFormatter/index.js +1 -1
  109. package/lib/CollaboratorFormatter/index.js +3 -0
  110. package/lib/CreatorFormatter/index.js +3 -0
  111. package/lib/DTableCustomizeCollaboratorSelect/index.js +1 -1
  112. package/lib/DTableCustomizeSelect/index.js +1 -1
  113. package/lib/DTableSelect/index.js +1 -1
  114. package/lib/FormulaFormatter/index.js +2 -2
  115. package/lib/HtmlLongTextFormatter/vfile/index.js +0 -2
  116. package/lib/ImageFormatter/index.js +2 -1
  117. package/lib/ImagePreviewerLightbox/index.js +3 -2
  118. package/lib/ImagePreviewerLightbox/utils.js +3 -2
  119. package/lib/LastModifierFormatter/index.js +3 -0
  120. package/lib/LinkFormatter/index.js +4 -1
  121. package/lib/MultipleSelectFormatter/index.js +3 -0
  122. package/lib/SelectOptionGroup/KeyCodes.js +1 -1
  123. package/lib/SingleSelectFormatter/index.js +3 -0
  124. package/lib/cellFormatterFactory/index.js +3 -3
  125. package/lib/formatterConfig/base-formatter-config.js +28 -0
  126. package/lib/formatterConfig/index.js +6 -23
  127. package/package.json +1 -1
package/es/app.css ADDED
@@ -0,0 +1,20 @@
1
+ html, body, #root {
2
+ width: 100%;
3
+ height: 100%;
4
+ }
5
+
6
+ .app {
7
+ width: 100%;
8
+ height: 100%;
9
+ display: flex;
10
+ flex-direction: column;
11
+ }
12
+
13
+ .app .app-body {
14
+ flex: 1;
15
+ }
16
+
17
+ .app .app-body .collaborator-container {
18
+ padding: 5px;
19
+ border: 1px solid;
20
+ }
package/es/app.js ADDED
@@ -0,0 +1,91 @@
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 { CollaboratorFormatter, SingleSelectFormatter } from './components/cell-formatter';
7
+ import './app.css';
8
+
9
+ var App = /*#__PURE__*/function (_React$Component) {
10
+ _inherits(App, _React$Component);
11
+
12
+ var _super = _createSuper(App);
13
+
14
+ function App() {
15
+ var _this;
16
+
17
+ _classCallCheck(this, App);
18
+
19
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
20
+ args[_key] = arguments[_key];
21
+ }
22
+
23
+ _this = _super.call.apply(_super, [this].concat(args));
24
+
25
+ _this.onDeleteCollaborator = function () {//
26
+ };
27
+
28
+ return _this;
29
+ }
30
+
31
+ _createClass(App, [{
32
+ key: "render",
33
+ value: function render() {
34
+ var collaborators = [{
35
+ name: '小强',
36
+ email: '214402@qq.com',
37
+ avatar_url: '你好饿',
38
+ contact_email: 'adbd'
39
+ }];
40
+ var options = [{
41
+ id: '1111',
42
+ name: '未开始',
43
+ color: '#e3f9f6'
44
+ }, {
45
+ id: '2222',
46
+ name: '进行中',
47
+ color: '#ff7500'
48
+ }, {
49
+ id: '3333',
50
+ name: '待评审',
51
+ color: '#eaff56'
52
+ }, {
53
+ id: '4444',
54
+ name: '已评审',
55
+ color: '#faff72'
56
+ }, {
57
+ id: '5555',
58
+ name: '完成',
59
+ color: '#00e500'
60
+ }];
61
+ return /*#__PURE__*/React.createElement("div", {
62
+ className: "app"
63
+ }, /*#__PURE__*/React.createElement("header", {
64
+ className: "app-header"
65
+ }, /*#__PURE__*/React.createElement("h1", {
66
+ className: "text-center"
67
+ }, 'seatable ui component test')), /*#__PURE__*/React.createElement("div", {
68
+ className: "app-body"
69
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h2", null, "collaborators\u6D4B\u8BD5"), /*#__PURE__*/React.createElement("div", null, "\u5355\u4E2Acollaborators\u6D4B\u8BD5"), /*#__PURE__*/React.createElement(CollaboratorFormatter, {
70
+ value: '123',
71
+ collaborators: collaborators
72
+ }), /*#__PURE__*/React.createElement("div", null, "\u591A\u4E2Acollaborators\u6D4B\u8BD5"), /*#__PURE__*/React.createElement(CollaboratorFormatter, {
73
+ value: ['123', '4567'],
74
+ collaborators: collaborators
75
+ }), /*#__PURE__*/React.createElement("div", null, "\u5E26\u5220\u9664\u6309\u94AE\u6D4B\u8BD5"), /*#__PURE__*/React.createElement(CollaboratorFormatter, {
76
+ containerClassName: "collaborator-container",
77
+ value: ['123', '4567'],
78
+ collaborators: collaborators,
79
+ enableDeleteCollaborator: true,
80
+ onDeleteCollaborator: this.onDeleteCollaborator
81
+ })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h2", null, "single-select\u6D4B\u8BD5"), /*#__PURE__*/React.createElement(SingleSelectFormatter, {
82
+ value: '3333',
83
+ options: options
84
+ }))));
85
+ }
86
+ }]);
87
+
88
+ return App;
89
+ }(React.Component);
90
+
91
+ export default App;
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,104 @@
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
+
7
+ var CheckboxEditor = /*#__PURE__*/function (_React$Component) {
8
+ _inherits(CheckboxEditor, _React$Component);
9
+
10
+ var _super = _createSuper(CheckboxEditor);
11
+
12
+ function CheckboxEditor(props) {
13
+ var _this;
14
+
15
+ _classCallCheck(this, CheckboxEditor);
16
+
17
+ _this = _super.call(this, props);
18
+
19
+ _this.getValue = function () {
20
+ var updated = {};
21
+ var column = _this.props.column;
22
+ updated[column.key] = _this.state.value;
23
+ return updated;
24
+ };
25
+
26
+ _this.onCommit = function () {
27
+ var updated = _this.getValue();
28
+
29
+ _this.props.onCommit(updated);
30
+ };
31
+
32
+ _this.onChange = function (event) {
33
+ if (_this.props.isReadOnly) {
34
+ return;
35
+ }
36
+
37
+ var value = event.target.checked;
38
+
39
+ if (value === _this.state.value) {
40
+ return;
41
+ }
42
+
43
+ _this.setState({
44
+ value: value
45
+ }, function () {
46
+ _this.onCommit();
47
+ });
48
+ };
49
+
50
+ _this.onKeyDown = function (event) {
51
+ event.stopPropagation();
52
+ };
53
+
54
+ _this.onBlur = function () {// this.onCommit();
55
+ };
56
+
57
+ _this.setInputRef = function (input) {
58
+ _this.input = input;
59
+ };
60
+
61
+ _this.getStyle = function () {
62
+ return {
63
+ marginLeft: 0,
64
+ transform: 'scale(1.1)'
65
+ };
66
+ };
67
+
68
+ _this.state = {
69
+ value: props.value ? props.value : false
70
+ };
71
+ return _this;
72
+ }
73
+
74
+ _createClass(CheckboxEditor, [{
75
+ key: "render",
76
+ value: function render() {
77
+ var style = this.getStyle();
78
+ return /*#__PURE__*/React.createElement("div", {
79
+ className: "cell-editor checkbox-editor"
80
+ }, /*#__PURE__*/React.createElement("div", {
81
+ className: "checkbox-editor-container"
82
+ }, /*#__PURE__*/React.createElement("input", {
83
+ ref: this.setInputRef,
84
+ type: "checkbox",
85
+ className: "checkbox",
86
+ checked: this.state.value,
87
+ onBlur: this.onBlur,
88
+ onPaste: this.onPaste,
89
+ onKeyDown: this.onKeyDown,
90
+ onChange: this.onChange,
91
+ style: style,
92
+ readOnly: this.props.isReadOnly
93
+ })));
94
+ }
95
+ }]);
96
+
97
+ return CheckboxEditor;
98
+ }(React.Component);
99
+
100
+ CheckboxEditor.defaultProps = {
101
+ isReadOnly: false,
102
+ value: false
103
+ };
104
+ export default CheckboxEditor;
@@ -0,0 +1,236 @@
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 CollaboratorItem from '../common/collaborator-item';
9
+ import EditEditorButton from '../common/edit-editor-button';
10
+ import PCCollaboratorEditorPopover from '../cell-editor-popover/pc-collaborator-editor-popover';
11
+ import MBCollaboratorEditorPopover from '../cell-editor-popover/mb-collaborator-editor-popover';
12
+
13
+ var CollaboratorEditor = /*#__PURE__*/function (_React$Component) {
14
+ _inherits(CollaboratorEditor, _React$Component);
15
+
16
+ var _super = _createSuper(CollaboratorEditor);
17
+
18
+ function CollaboratorEditor(props) {
19
+ var _this;
20
+
21
+ _classCallCheck(this, CollaboratorEditor);
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.getFormattedCollaborators = function () {
32
+ var newValue = _this.state.newValue;
33
+
34
+ if (Array.isArray(newValue) && newValue.length > 0) {
35
+ var collaborators = _this.props.collaborators;
36
+ return newValue.map(function (collaboratorEmail) {
37
+ return collaborators.find(function (collaborator) {
38
+ return collaborator.email === collaboratorEmail;
39
+ });
40
+ }).filter(function (collaborator) {
41
+ return !!collaborator;
42
+ });
43
+ }
44
+
45
+ return [];
46
+ };
47
+
48
+ _this.onAddOptionToggle = function (event) {
49
+ event.nativeEvent.stopImmediatePropagation();
50
+ event.stopPropagation();
51
+
52
+ if (_this.props.isReadOnly) {
53
+ return;
54
+ }
55
+
56
+ var isPopoverShow = !_this.state.isPopoverShow;
57
+
58
+ if (isPopoverShow) {
59
+ var popoverPosition = _this.caculatePopoverPosition();
60
+
61
+ _this.setState({
62
+ isPopoverShow: isPopoverShow,
63
+ popoverPosition: popoverPosition
64
+ });
65
+ } else {
66
+ _this.setState({
67
+ isPopoverShow: isPopoverShow
68
+ });
69
+ }
70
+ };
71
+
72
+ _this.onCommit = function (newValue) {
73
+ var updated = {};
74
+ var column = _this.props.column;
75
+ updated[column.key] = newValue;
76
+
77
+ _this.props.onCommit(updated);
78
+ };
79
+
80
+ _this.onCollaboratorItemToggle = function (collaborator) {
81
+ var newValue = _this.state.newValue.slice();
82
+
83
+ var collaboratorIndex = newValue.findIndex(function (collaboratorEmail) {
84
+ return collaboratorEmail === collaborator.email;
85
+ });
86
+
87
+ if (collaboratorIndex !== -1) {
88
+ newValue.splice(collaboratorIndex, 1);
89
+ } else {
90
+ newValue.push(collaborator.email);
91
+ }
92
+
93
+ _this.setState({
94
+ newValue: newValue
95
+ }, function () {
96
+ _this.onCommit(newValue);
97
+
98
+ _this.onClosePopover();
99
+ });
100
+ };
101
+
102
+ _this.onDeleteCollaborator = function (collaborator) {
103
+ var newValue = _this.state.newValue.slice();
104
+
105
+ var optionIndex = newValue.findIndex(function (collaboratorEmail) {
106
+ return collaboratorEmail === collaborator.email;
107
+ });
108
+
109
+ if (optionIndex > -1) {
110
+ newValue.splice(optionIndex, 1);
111
+
112
+ _this.setState({
113
+ newValue: newValue
114
+ }, function () {
115
+ _this.onCommit(newValue);
116
+ });
117
+ }
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
+ return _this;
165
+ }
166
+
167
+ _createClass(CollaboratorEditor, [{
168
+ key: "componentDidMount",
169
+ value: function componentDidMount() {
170
+ document.addEventListener('click', this.onDocumentToggle);
171
+ }
172
+ }, {
173
+ key: "componentWillUnmount",
174
+ value: function componentWillUnmount() {
175
+ document.removeEventListener('click', this.onDocumentToggle);
176
+ }
177
+ }, {
178
+ key: "render",
179
+ value: function render() {
180
+ var _this2 = this;
181
+
182
+ var _this$props = this.props,
183
+ collaborators = _this$props.collaborators,
184
+ isReadOnly = _this$props.isReadOnly;
185
+ var _this$state = this.state,
186
+ isPopoverShow = _this$state.isPopoverShow,
187
+ popoverPosition = _this$state.popoverPosition;
188
+ var selectedCollaborators = this.getFormattedCollaborators();
189
+ var enableDeleteCollaborator = !isReadOnly;
190
+ return /*#__PURE__*/React.createElement("div", {
191
+ ref: this.setEditorContainerRef,
192
+ className: "cell-editor dtable-ui-collaborator-editor"
193
+ }, /*#__PURE__*/React.createElement("div", {
194
+ ref: this.setEditorRef,
195
+ className: "dtable-ui-collaborator-editor-container"
196
+ }, /*#__PURE__*/React.createElement(EditEditorButton, {
197
+ text: getLocale('Add_a_collaborator'),
198
+ onClick: this.onAddOptionToggle
199
+ }), /*#__PURE__*/React.createElement("div", {
200
+ className: "collaborators-container"
201
+ }, selectedCollaborators.length > 0 && selectedCollaborators.map(function (collaborator) {
202
+ return /*#__PURE__*/React.createElement(CollaboratorItem, {
203
+ key: collaborator.email,
204
+ collaborator: collaborator,
205
+ enableDeleteCollaborator: enableDeleteCollaborator,
206
+ onDeleteCollaborator: _this2.onDeleteCollaborator
207
+ });
208
+ }))), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
209
+ query: '(min-width: 768px)'
210
+ }, /*#__PURE__*/React.createElement(PCCollaboratorEditorPopover, {
211
+ popoverPosition: popoverPosition,
212
+ isReadOnly: this.props.isReadOnly,
213
+ selectedCollaborators: selectedCollaborators,
214
+ collaborators: collaborators,
215
+ onCollaboratorItemToggle: this.onCollaboratorItemToggle
216
+ })), /*#__PURE__*/React.createElement(MediaQuery, {
217
+ query: '(max-width: 767.8px)'
218
+ }, /*#__PURE__*/React.createElement(MBCollaboratorEditorPopover, {
219
+ isReadOnly: this.props.isReadOnly,
220
+ value: this.state.newValue,
221
+ column: this.props.column,
222
+ collaborators: this.props.collaborators,
223
+ onCollaboratorItemToggle: this.onCollaboratorItemToggle,
224
+ onClosePopover: this.onClosePopover
225
+ }))));
226
+ }
227
+ }]);
228
+
229
+ return CollaboratorEditor;
230
+ }(React.Component);
231
+
232
+ CollaboratorEditor.defaultProps = {
233
+ isReadOnly: false,
234
+ value: []
235
+ };
236
+ export default CollaboratorEditor;
@@ -0,0 +1,151 @@
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 moment from 'moment';
8
+ import { formatDateToString } from '../../utils/value-format-utils';
9
+ import PCDateEditorPopover from '../cell-editor-popover/pc-date-editor-popover';
10
+ import MBDateEditorPopover from '../cell-editor-popover/mb-date-editor-popover';
11
+
12
+ var DateEditor = /*#__PURE__*/function (_React$Component) {
13
+ _inherits(DateEditor, _React$Component);
14
+
15
+ var _super = _createSuper(DateEditor);
16
+
17
+ function DateEditor(props) {
18
+ var _this;
19
+
20
+ _classCallCheck(this, DateEditor);
21
+
22
+ _this = _super.call(this, props);
23
+
24
+ _this.getDateFormat = function () {
25
+ var column = _this.props.column;
26
+ var defaultDateFormat = 'YYYY-MM-DD';
27
+ var dateFormat = column.data && column.data.format;
28
+ return dateFormat || defaultDateFormat;
29
+ };
30
+
31
+ _this.onDateEditorToggle = function () {
32
+ var isReadOnly = _this.props.isReadOnly;
33
+
34
+ if (isReadOnly) {
35
+ return;
36
+ }
37
+
38
+ _this.setState({
39
+ isPopoverShow: !_this.state.isPopoverShow
40
+ });
41
+ };
42
+
43
+ _this.onValueChanged = function (value) {
44
+ if (value !== _this.state.newValue) {
45
+ _this.setState({
46
+ newValue: value
47
+ });
48
+
49
+ _this.onCommit(value);
50
+ }
51
+ };
52
+
53
+ _this.onCommit = function (newValue) {
54
+ var updated = {};
55
+ var column = _this.props.column;
56
+ updated[column.key] = newValue;
57
+
58
+ _this.props.onCommit(updated);
59
+ };
60
+
61
+ _this.onClosePopover = function () {
62
+ _this.setState({
63
+ isPopoverShow: false
64
+ });
65
+ };
66
+
67
+ _this.state = {
68
+ isDateInit: false,
69
+ newValue: '',
70
+ isPopoverShow: false,
71
+ showHourAndMinute: false,
72
+ defaultCalendarValue: null
73
+ };
74
+ return _this;
75
+ }
76
+
77
+ _createClass(DateEditor, [{
78
+ key: "componentDidMount",
79
+ value: function componentDidMount() {
80
+ var _this$props = this.props,
81
+ value = _this$props.value,
82
+ lang = _this$props.lang;
83
+ moment.locale(lang);
84
+ var dateFormat = this.getDateFormat();
85
+ this.setState({
86
+ isDateInit: true,
87
+ newValue: value,
88
+ dateFormat: dateFormat,
89
+ showHourAndMinute: dateFormat.indexOf('HH:mm') > -1
90
+ });
91
+ }
92
+ }, {
93
+ key: "render",
94
+ value: function render() {
95
+ if (!this.state.isDateInit) {
96
+ return /*#__PURE__*/React.createElement("div", {
97
+ className: "cell-editor date-editor"
98
+ }, /*#__PURE__*/React.createElement("div", {
99
+ className: "date-editor-conteinr"
100
+ }, /*#__PURE__*/React.createElement("div", {
101
+ className: "control-form"
102
+ })));
103
+ }
104
+
105
+ var _this$props2 = this.props,
106
+ lang = _this$props2.lang,
107
+ column = _this$props2.column;
108
+ var _this$state = this.state,
109
+ newValue = _this$state.newValue,
110
+ isPopoverShow = _this$state.isPopoverShow,
111
+ dateFormat = _this$state.dateFormat,
112
+ showHourAndMinute = _this$state.showHourAndMinute;
113
+ return /*#__PURE__*/React.createElement("div", {
114
+ className: "cell-editor dtable-ui-date-editor"
115
+ }, !isPopoverShow && /*#__PURE__*/React.createElement("div", {
116
+ className: "dtable-ui-date-editor-container"
117
+ }, /*#__PURE__*/React.createElement("div", {
118
+ className: "form-control",
119
+ onClick: this.onDateEditorToggle
120
+ }, formatDateToString(newValue, dateFormat))), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
121
+ query: '(min-width: 768px)'
122
+ }, /*#__PURE__*/React.createElement(PCDateEditorPopover, {
123
+ lang: lang,
124
+ value: newValue,
125
+ dateFormat: dateFormat,
126
+ showHourAndMinute: showHourAndMinute,
127
+ onValueChanged: this.onValueChanged
128
+ })), /*#__PURE__*/React.createElement(MediaQuery, {
129
+ query: '(max-width: 767.8px)'
130
+ }, /*#__PURE__*/React.createElement(MBDateEditorPopover, {
131
+ isReadOnly: this.props.isReadOnly,
132
+ lang: lang,
133
+ value: newValue,
134
+ dateFormat: dateFormat,
135
+ showHourAndMinute: showHourAndMinute,
136
+ column: column,
137
+ onValueChanged: this.onValueChanged,
138
+ onClosePopover: this.onClosePopover
139
+ }))));
140
+ }
141
+ }]);
142
+
143
+ return DateEditor;
144
+ }(React.Component);
145
+
146
+ DateEditor.defaultProps = {
147
+ isReadOnly: false,
148
+ value: '',
149
+ lang: 'en'
150
+ };
151
+ export default DateEditor;
@@ -0,0 +1,9 @@
1
+ import "../../css/cell-editor.css";
2
+ export { default as NumberEditor } from './number-editor';
3
+ export { default as TextEditor } from './text-editor';
4
+ export { default as CheckboxEditor } from './checkbox-editor';
5
+ export { default as SingleSelectEdtior } from './single-select-editor';
6
+ export { default as MultipleSelectEditor } from './multiple-select-editor';
7
+ export { default as CollaboratorEditor } from './collaborator-editor';
8
+ export { default as LinkEditor } from './link-editor';
9
+ export { default as DateEditor } from './date-editor';