dtable-ui-component 0.2.5 → 0.2.7-beta

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 (112) hide show
  1. package/lib/DTableRadio/index.css +9 -1
  2. package/lib/DTableRadio/index.js +4 -3
  3. package/lib/ImageFormatter/index.js +4 -0
  4. package/lib/ImagePreviewerLightbox/index.js +4 -4
  5. package/lib/toaster/toast.js +8 -3
  6. package/package.json +1 -1
  7. package/es/app.css +0 -20
  8. package/es/app.js +0 -91
  9. package/es/assets/images/avatar/default_avatar.png +0 -0
  10. package/es/assets/images/file/192/excel.png +0 -0
  11. package/es/assets/images/file/192/file.png +0 -0
  12. package/es/assets/images/file/192/music.png +0 -0
  13. package/es/assets/images/file/192/pdf.png +0 -0
  14. package/es/assets/images/file/192/pic.png +0 -0
  15. package/es/assets/images/file/192/ppt.png +0 -0
  16. package/es/assets/images/file/192/txt.png +0 -0
  17. package/es/assets/images/file/192/video.png +0 -0
  18. package/es/assets/images/file/192/word.png +0 -0
  19. package/es/assets/images/file/24/excel.png +0 -0
  20. package/es/assets/images/file/24/file.png +0 -0
  21. package/es/assets/images/file/24/music.png +0 -0
  22. package/es/assets/images/file/24/pdf.png +0 -0
  23. package/es/assets/images/file/24/pic.png +0 -0
  24. package/es/assets/images/file/24/ppt.png +0 -0
  25. package/es/assets/images/file/24/txt.png +0 -0
  26. package/es/assets/images/file/24/video.png +0 -0
  27. package/es/assets/images/file/24/word.png +0 -0
  28. package/es/assets/images/folder/folder-192.png +0 -0
  29. package/es/assets/images/folder/folder-24.png +0 -0
  30. package/es/components/cell-editor/checkbox-editor.js +0 -104
  31. package/es/components/cell-editor/collaborator-editor.js +0 -236
  32. package/es/components/cell-editor/date-editor.js +0 -151
  33. package/es/components/cell-editor/index.js +0 -9
  34. package/es/components/cell-editor/link-editor.js +0 -303
  35. package/es/components/cell-editor/multiple-select-editor.js +0 -237
  36. package/es/components/cell-editor/number-editor.js +0 -154
  37. package/es/components/cell-editor/single-select-editor.js +0 -202
  38. package/es/components/cell-editor/text-editor.js +0 -122
  39. package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +0 -46
  40. package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
  41. package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
  42. package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
  43. package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
  44. package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +0 -177
  45. package/es/components/cell-editor-popover/mb-date-editor-popover.js +0 -245
  46. package/es/components/cell-editor-popover/mb-link-editor-popover.js +0 -170
  47. package/es/components/cell-editor-popover/mb-select-editor-popover.js +0 -230
  48. package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +0 -109
  49. package/es/components/cell-editor-popover/pc-date-editor-popover.js +0 -142
  50. package/es/components/cell-editor-popover/pc-link-editor-popover.js +0 -114
  51. package/es/components/cell-editor-popover/pc-select-editor-popover.js +0 -143
  52. package/es/components/cell-factory/cell-formatter-factory.js +0 -25
  53. package/es/components/cell-formatter/auto-number-formatter.js +0 -35
  54. package/es/components/cell-formatter/button-formatter.js +0 -55
  55. package/es/components/cell-formatter/checkbox-formatter.js +0 -44
  56. package/es/components/cell-formatter/collaborator-formatter.js +0 -91
  57. package/es/components/cell-formatter/creator-formatter.js +0 -87
  58. package/es/components/cell-formatter/ctime-formatter.js +0 -57
  59. package/es/components/cell-formatter/date-formatter.js +0 -59
  60. package/es/components/cell-formatter/duration-formatter.js +0 -37
  61. package/es/components/cell-formatter/email-formatter.js +0 -35
  62. package/es/components/cell-formatter/file-formatter.js +0 -63
  63. package/es/components/cell-formatter/formatter-config.js +0 -31
  64. package/es/components/cell-formatter/formula-formatter.js +0 -173
  65. package/es/components/cell-formatter/geolocation-formatter.js +0 -49
  66. package/es/components/cell-formatter/image-formatter.js +0 -153
  67. package/es/components/cell-formatter/index.js +0 -26
  68. package/es/components/cell-formatter/last-modifier-formatter.js +0 -87
  69. package/es/components/cell-formatter/link-formatter.js +0 -144
  70. package/es/components/cell-formatter/long-text-formatter.js +0 -106
  71. package/es/components/cell-formatter/mtime-formatter.js +0 -57
  72. package/es/components/cell-formatter/multiple-select-formatter.js +0 -70
  73. package/es/components/cell-formatter/number-formatter.js +0 -46
  74. package/es/components/cell-formatter/rate-formatter.js +0 -74
  75. package/es/components/cell-formatter/single-select-formatter.js +0 -69
  76. package/es/components/cell-formatter/text-formatter.js +0 -35
  77. package/es/components/cell-formatter/url-formatter.js +0 -35
  78. package/es/components/cell-formatter/widgets/file-item-formatter.js +0 -50
  79. package/es/components/cell-formatter/widgets/image-previewer-lightbox.js +0 -119
  80. package/es/components/common/collaborator-item.js +0 -63
  81. package/es/components/common/edit-editor-button.js +0 -56
  82. package/es/components/common/images-lazy-load.js +0 -148
  83. package/es/components/common/link-editor-option.js +0 -113
  84. package/es/components/common/mobile/mb-editor-header.js +0 -48
  85. package/es/components/common/modal-portal.js +0 -44
  86. package/es/components/common/select-editor-option.js +0 -106
  87. package/es/components/common/select-item.js +0 -58
  88. package/es/components/file-uploader/index.js +0 -53
  89. package/es/components/loading.js +0 -7
  90. package/es/components/toast/alert.js +0 -150
  91. package/es/components/toast/index.js +0 -3
  92. package/es/components/toast/toast.js +0 -179
  93. package/es/components/toast/toastManager.js +0 -170
  94. package/es/components/toast/toaster.js +0 -76
  95. package/es/css/cell-editor.css +0 -614
  96. package/es/css/cell-formatter.css +0 -241
  97. package/es/css/custom-rc-calendar.css +0 -118
  98. package/es/css/image-previewer-ligntbox.css +0 -87
  99. package/es/css/loading.css +0 -54
  100. package/es/index.js +0 -5
  101. package/es/lang/index.js +0 -50
  102. package/es/locals/de.js +0 -2
  103. package/es/locals/en.js +0 -17
  104. package/es/locals/fr.js +0 -2
  105. package/es/locals/zh-CN.js +0 -17
  106. package/es/utils/cell-types.js +0 -25
  107. package/es/utils/constants.js +0 -41
  108. package/es/utils/editor-utils.js +0 -71
  109. package/es/utils/normalize-long-text-value.js +0 -68
  110. package/es/utils/number-precision.js +0 -163
  111. package/es/utils/utils.js +0 -116
  112. package/es/utils/value-format-utils.js +0 -281
@@ -7,6 +7,10 @@
7
7
  font-size: 14px;
8
8
  }
9
9
 
10
+ .dtable-radio:not(.dtable-radio-disable):hover {
11
+ cursor: pointer;
12
+ }
13
+
10
14
  .dtable-radio .dtable-radio-input {
11
15
  position: absolute;
12
16
  z-index: -1;
@@ -40,10 +44,14 @@
40
44
  border-radius: 50%;
41
45
  }
42
46
 
43
- .dtable-radio .dtable-radio-disable {
47
+ .dtable-radio.dtable-radio-disable .dtable-radio-indicator {
44
48
  background-color: #f5f5f5;
45
49
  }
46
50
 
51
+ .dtable-radio.dtable-radio-disable .dtable-radio-selected-indicator::before {
52
+ opacity: .5;
53
+ }
54
+
47
55
  .dtable-radio .dtable-radio-description {
48
56
  margin-left: .5rem;
49
57
  color: inherit;
@@ -4,7 +4,9 @@ import './index.css';
4
4
 
5
5
  function SeaTableRadio(props) {
6
6
  return /*#__PURE__*/React.createElement("label", {
7
- className: "dtable-radio"
7
+ className: classnames('dtable-radio', {
8
+ 'dtable-radio-disable': props.disabled
9
+ })
8
10
  }, /*#__PURE__*/React.createElement("input", {
9
11
  type: "radio",
10
12
  className: "dtable-radio-input",
@@ -14,8 +16,7 @@ function SeaTableRadio(props) {
14
16
  value: props.value
15
17
  }), /*#__PURE__*/React.createElement("span", {
16
18
  className: classnames('dtable-radio-indicator', {
17
- 'dtable-radio-selected-indicator': props.isChecked,
18
- 'dtable-radio-disable': props.disabled
19
+ 'dtable-radio-selected-indicator': props.isChecked
19
20
  })
20
21
  }), /*#__PURE__*/React.createElement("span", {
21
22
  className: "dtable-radio-description text-truncate"
@@ -33,6 +33,10 @@ var ImageFormatter = /*#__PURE__*/function (_React$Component) {
33
33
  _this.closeImagePopup = function () {
34
34
  if (!_this.props.isSupportPreview) return;
35
35
 
36
+ if (_this.props.onCloseCallback) {
37
+ _this.props.onCloseCallback();
38
+ }
39
+
36
40
  _this.setState({
37
41
  isPreviewImage: false,
38
42
  previewImageIndex: -1
@@ -33,8 +33,8 @@ function ImagePreviewerLightbox(props) {
33
33
  if (moveToPrevRowImage) {
34
34
  toolbarButtons.push( /*#__PURE__*/React.createElement("button", {
35
35
  className: "dtable-font dtable-icon-retract",
36
- onClick: function onClick() {
37
- moveToPrevRowImage();
36
+ onClick: function onClick(event) {
37
+ moveToPrevRowImage(event);
38
38
  }
39
39
  }));
40
40
  }
@@ -42,8 +42,8 @@ function ImagePreviewerLightbox(props) {
42
42
  if (moveToNextRowImage) {
43
43
  toolbarButtons.push( /*#__PURE__*/React.createElement("button", {
44
44
  className: "dtable-font dtable-icon-display",
45
- onClick: function onClick() {
46
- moveToNextRowImage();
45
+ onClick: function onClick(event) {
46
+ moveToNextRowImage(event);
47
47
  }
48
48
  }));
49
49
  }
@@ -65,7 +65,12 @@ var Toast = /*#__PURE__*/function (_React$PureComponent) {
65
65
  height: 0
66
66
  };
67
67
 
68
- _this.close = function () {
68
+ _this.close = function (event) {
69
+ if (event) {
70
+ event.nativeEvent.stopImmediatePropagation();
71
+ event.stopPropagation();
72
+ }
73
+
69
74
  _this.clearCloseTimer();
70
75
 
71
76
  _this.setState({
@@ -162,8 +167,8 @@ var Toast = /*#__PURE__*/function (_React$PureComponent) {
162
167
  title: _this2.props.title,
163
168
  children: _this2.props.children || '',
164
169
  isRemoveable: _this2.props.hasCloseButton,
165
- onRemove: function onRemove() {
166
- return _this2.close();
170
+ onRemove: function onRemove(event) {
171
+ return _this2.close(event);
167
172
  }
168
173
  })));
169
174
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-ui-component",
3
- "version": "0.2.5",
3
+ "version": "0.2.7beta",
4
4
  "main": "./lib/index.js",
5
5
  "dependencies": {
6
6
  "@seafile/react-image-lightbox": "0.0.9",
package/es/app.css DELETED
@@ -1,20 +0,0 @@
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 DELETED
@@ -1,91 +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 { 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
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,104 +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
-
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;
@@ -1,236 +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 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;