dtable-ui-component 0.1.74 → 0.1.75-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.
- package/es/components/cell-editor/checkbox-editor.js +104 -0
- package/es/components/cell-editor/collaborator-editor.js +236 -0
- package/es/components/cell-editor/date-editor.js +151 -0
- package/es/components/cell-editor/index.js +9 -0
- package/es/components/cell-editor/link-editor.js +303 -0
- package/es/components/cell-editor/multiple-select-editor.js +237 -0
- package/es/components/cell-editor/number-editor.js +154 -0
- package/es/components/cell-editor/single-select-editor.js +202 -0
- package/es/components/cell-editor/text-editor.js +122 -0
- package/es/components/cell-editor-dialog/pc-file-editor-dialog.js +46 -0
- package/es/components/cell-editor-dialog/pc-files-addition/index.js +0 -0
- package/es/components/cell-editor-dialog/pc-files-addition/pc-file-uploaded-item.js +0 -0
- package/es/components/cell-editor-dialog/pc-files-preview/index.js +0 -0
- package/es/components/cell-editor-dialog/pc-files-preview/pc-file-item-preview.js +0 -0
- package/es/components/cell-editor-popover/mb-collaborator-editor-popover.js +177 -0
- package/es/components/cell-editor-popover/mb-date-editor-popover.js +245 -0
- package/es/components/cell-editor-popover/mb-link-editor-popover.js +170 -0
- package/es/components/cell-editor-popover/mb-select-editor-popover.js +230 -0
- package/es/components/cell-editor-popover/pc-collaborator-editor-popover.js +109 -0
- package/es/components/cell-editor-popover/pc-date-editor-popover.js +142 -0
- package/es/components/cell-editor-popover/pc-link-editor-popover.js +114 -0
- package/es/components/cell-editor-popover/pc-select-editor-popover.js +143 -0
- package/es/index.js +2 -1
- package/es/utils/editor-utils.js +71 -0
- package/es/utils/normalize-long-text-value.js +2 -2
- package/package.json +3 -1
|
@@ -0,0 +1,202 @@
|
|
|
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;
|
|
@@ -0,0 +1,122 @@
|
|
|
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;
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { Modal, ModalHeader, ModalBody } from 'reactstrap';
|
|
7
|
+
import { getLocale } from '../../lang';
|
|
8
|
+
|
|
9
|
+
var FileEditorDialog = /*#__PURE__*/function (_React$Component) {
|
|
10
|
+
_inherits(FileEditorDialog, _React$Component);
|
|
11
|
+
|
|
12
|
+
var _super = _createSuper(FileEditorDialog);
|
|
13
|
+
|
|
14
|
+
function FileEditorDialog(props) {
|
|
15
|
+
var _this;
|
|
16
|
+
|
|
17
|
+
_classCallCheck(this, FileEditorDialog);
|
|
18
|
+
|
|
19
|
+
_this = _super.call(this, props);
|
|
20
|
+
_this.state = {};
|
|
21
|
+
return _this;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
_createClass(FileEditorDialog, [{
|
|
25
|
+
key: "render",
|
|
26
|
+
value: function render() {
|
|
27
|
+
var closeEditor = this.props.closeEditor;
|
|
28
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
29
|
+
isOpen: true,
|
|
30
|
+
toggle: closeEditor
|
|
31
|
+
}, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
32
|
+
toggle: closeEditor
|
|
33
|
+
}, getLocale('Add_Files')), /*#__PURE__*/React.createElement(ModalBody, {
|
|
34
|
+
className: "file-editor-container"
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
}]);
|
|
38
|
+
|
|
39
|
+
return FileEditorDialog;
|
|
40
|
+
}(React.Component);
|
|
41
|
+
|
|
42
|
+
FileEditorDialog.defaultProps = {
|
|
43
|
+
isCheckRepeat: false,
|
|
44
|
+
columnType: 'file'
|
|
45
|
+
};
|
|
46
|
+
export default FileEditorDialog;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
4
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
5
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { getLocale } from '../../lang';
|
|
8
|
+
import MBEditorHeader from '../common/mobile/mb-editor-header';
|
|
9
|
+
|
|
10
|
+
var MBCollaboratorEditorPopover = /*#__PURE__*/function (_React$Component) {
|
|
11
|
+
_inherits(MBCollaboratorEditorPopover, _React$Component);
|
|
12
|
+
|
|
13
|
+
var _super = _createSuper(MBCollaboratorEditorPopover);
|
|
14
|
+
|
|
15
|
+
function MBCollaboratorEditorPopover(props) {
|
|
16
|
+
var _this;
|
|
17
|
+
|
|
18
|
+
_classCallCheck(this, MBCollaboratorEditorPopover);
|
|
19
|
+
|
|
20
|
+
_this = _super.call(this, props);
|
|
21
|
+
|
|
22
|
+
_this.handleHistaryBack = function (e) {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
|
|
25
|
+
_this.props.onClosePopover();
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
_this.onContainerClick = function (event) {
|
|
29
|
+
if (_this.editorPopover && _this.editorPopover.contains(event.target)) {
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
_this.onChangeSearch = function (event) {
|
|
37
|
+
var searchVal = _this.state.searchVal;
|
|
38
|
+
|
|
39
|
+
if (searchVal === event.target.value) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
searchVal = event.target.value;
|
|
44
|
+
|
|
45
|
+
_this.setState({
|
|
46
|
+
searchVal: searchVal
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
_this.getSelectedCollaborators = function () {
|
|
51
|
+
var _this$props = _this.props,
|
|
52
|
+
value = _this$props.value,
|
|
53
|
+
collaborators = _this$props.collaborators;
|
|
54
|
+
|
|
55
|
+
if (!Array.isArray(value)) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return collaborators.filter(function (collaborator) {
|
|
60
|
+
return value.indexOf(collaborator.email) > -1;
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
_this.getFilteredCollaborators = function () {
|
|
65
|
+
var collaborators = _this.props.collaborators;
|
|
66
|
+
var searchVal = _this.state.searchVal;
|
|
67
|
+
return searchVal ? collaborators.filter(function (item) {
|
|
68
|
+
return item.name.indexOf(searchVal) > -1;
|
|
69
|
+
}) : collaborators;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
_this.onSelectCollaborator = function (collaborator) {
|
|
73
|
+
_this.props.onCollaboratorItemToggle(collaborator);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
_this.onRemoveCollaborator = function (collaborator) {
|
|
77
|
+
_this.props.onCollaboratorItemToggle(collaborator);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
_this.renderFilteredCollaborators = function (collaborators) {
|
|
81
|
+
var value = _this.props.value;
|
|
82
|
+
return collaborators.map(function (collaborator, index) {
|
|
83
|
+
var isSelect = value.some(function (item) {
|
|
84
|
+
return item === collaborator.email;
|
|
85
|
+
});
|
|
86
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: "mb-collaborator-option-item",
|
|
88
|
+
key: index,
|
|
89
|
+
onMouseDown: _this.onSelectCollaborator.bind(_assertThisInitialized(_this), collaborator)
|
|
90
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
91
|
+
className: "mb-collaborator-info"
|
|
92
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
93
|
+
className: "collaborator-avatar"
|
|
94
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
95
|
+
src: collaborator.avatar_url,
|
|
96
|
+
width: "24",
|
|
97
|
+
height: "24",
|
|
98
|
+
alt: "avatar"
|
|
99
|
+
})), /*#__PURE__*/React.createElement("span", {
|
|
100
|
+
className: "collaborator-name"
|
|
101
|
+
}, collaborator.name)), isSelect && /*#__PURE__*/React.createElement("i", {
|
|
102
|
+
className: "mb-collaborator-checked dtable-font dtable-icon-check-mark"
|
|
103
|
+
}));
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
_this.setEditorPopover = function (editorPopover) {
|
|
108
|
+
_this.editorPopover = editorPopover;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
_this.state = {
|
|
112
|
+
searchVal: ''
|
|
113
|
+
};
|
|
114
|
+
return _this;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
_createClass(MBCollaboratorEditorPopover, [{
|
|
118
|
+
key: "componentDidMount",
|
|
119
|
+
value: function componentDidMount() {
|
|
120
|
+
history.pushState(null, null, '#'); // eslint-disable-line
|
|
121
|
+
|
|
122
|
+
window.addEventListener('popstate', this.handleHistaryBack, false);
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
key: "componentWillUnmount",
|
|
126
|
+
value: function componentWillUnmount() {
|
|
127
|
+
window.removeEventListener('popstate', this.handleHistaryBack, false);
|
|
128
|
+
}
|
|
129
|
+
}, {
|
|
130
|
+
key: "render",
|
|
131
|
+
value: function render() {
|
|
132
|
+
var column = this.props.column;
|
|
133
|
+
var searchVal = this.state.searchVal;
|
|
134
|
+
var filteredCollaborators = this.getFilteredCollaborators();
|
|
135
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
136
|
+
ref: this.setEditorPopover,
|
|
137
|
+
className: "dtable-ui-mb-editor-popover mb-collaborator-editor-popover",
|
|
138
|
+
onClick: this.onContainerClick
|
|
139
|
+
}, /*#__PURE__*/React.createElement(MBEditorHeader, {
|
|
140
|
+
title: column.name,
|
|
141
|
+
leftContent: /*#__PURE__*/React.createElement("i", {
|
|
142
|
+
className: "dtable-font dtable-icon-return"
|
|
143
|
+
}),
|
|
144
|
+
rightContent: /*#__PURE__*/React.createElement("span", null, getLocale('Done')),
|
|
145
|
+
onLeftClick: this.props.onClosePopover,
|
|
146
|
+
onRightClick: this.props.onClosePopover
|
|
147
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
148
|
+
className: "dtable-ui-mb-editor-body dtable-ui-mb-collaborator-editor-body"
|
|
149
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
150
|
+
className: "mb-search-collaborator-items"
|
|
151
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
152
|
+
className: "form-control",
|
|
153
|
+
type: "text",
|
|
154
|
+
placeholder: getLocale('Find_a_collaborator'),
|
|
155
|
+
value: searchVal,
|
|
156
|
+
onChange: this.onChangeSearch,
|
|
157
|
+
onClick: this.onInputClick
|
|
158
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
159
|
+
className: "mb-collaborators-container"
|
|
160
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
className: "title"
|
|
162
|
+
}, getLocale('Choose_a_collaborator')), /*#__PURE__*/React.createElement("div", {
|
|
163
|
+
className: "content"
|
|
164
|
+
}, filteredCollaborators.length === 0 && /*#__PURE__*/React.createElement("div", {
|
|
165
|
+
className: "search-result-none"
|
|
166
|
+
}, getLocale('No_collaborators_avaliable')), filteredCollaborators.length > 0 && this.renderFilteredCollaborators(filteredCollaborators)))));
|
|
167
|
+
}
|
|
168
|
+
}]);
|
|
169
|
+
|
|
170
|
+
return MBCollaboratorEditorPopover;
|
|
171
|
+
}(React.Component);
|
|
172
|
+
|
|
173
|
+
MBCollaboratorEditorPopover.defaultProps = {
|
|
174
|
+
isReadOnly: false,
|
|
175
|
+
value: []
|
|
176
|
+
};
|
|
177
|
+
export default MBCollaboratorEditorPopover;
|