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,109 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
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 CollaboratorItem from '../common/collaborator-item';
|
|
9
|
+
|
|
10
|
+
var PCCollaboratorEditorPopover = /*#__PURE__*/function (_React$Component) {
|
|
11
|
+
_inherits(PCCollaboratorEditorPopover, _React$Component);
|
|
12
|
+
|
|
13
|
+
var _super = _createSuper(PCCollaboratorEditorPopover);
|
|
14
|
+
|
|
15
|
+
function PCCollaboratorEditorPopover(props) {
|
|
16
|
+
var _this;
|
|
17
|
+
|
|
18
|
+
_classCallCheck(this, PCCollaboratorEditorPopover);
|
|
19
|
+
|
|
20
|
+
_this = _super.call(this, props);
|
|
21
|
+
|
|
22
|
+
_this.onValueChanged = function (event) {
|
|
23
|
+
var value = event.target.value;
|
|
24
|
+
|
|
25
|
+
_this.setState({
|
|
26
|
+
searchValue: value
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
_this.onInputClick = function (event) {
|
|
31
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
32
|
+
event.stopPropagation();
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
_this.onCollaboratorItemToggle = function (item) {
|
|
36
|
+
_this.props.onCollaboratorItemToggle(item);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
_this.getFilterCollaborator = function () {
|
|
40
|
+
var collaborators = _this.props.collaborators;
|
|
41
|
+
|
|
42
|
+
var filter = _this.state.searchValue.toLowerCase();
|
|
43
|
+
|
|
44
|
+
if (!filter) {
|
|
45
|
+
return collaborators;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return collaborators.filter(function (collaborator) {
|
|
49
|
+
return collaborator.name.toString().toLowerCase().indexOf(filter) > -1;
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
_this.state = {
|
|
54
|
+
searchValue: ''
|
|
55
|
+
};
|
|
56
|
+
return _this;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_createClass(PCCollaboratorEditorPopover, [{
|
|
60
|
+
key: "render",
|
|
61
|
+
value: function render() {
|
|
62
|
+
var _this2 = this;
|
|
63
|
+
|
|
64
|
+
var searchValue = this.state.searchValue;
|
|
65
|
+
var _this$props = this.props,
|
|
66
|
+
selectedCollaborators = _this$props.selectedCollaborators,
|
|
67
|
+
popoverPosition = _this$props.popoverPosition;
|
|
68
|
+
var collaborators = this.getFilterCollaborator();
|
|
69
|
+
var popoverStyle = Object.assign({}, _objectSpread({}, popoverPosition), {
|
|
70
|
+
position: 'absolute'
|
|
71
|
+
});
|
|
72
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
73
|
+
className: "dtable-ui-editor-popover dtable-ui-collaborator-editor-popover",
|
|
74
|
+
style: popoverStyle
|
|
75
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
76
|
+
className: "collaborator-search-container"
|
|
77
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
78
|
+
className: "form-control",
|
|
79
|
+
value: searchValue,
|
|
80
|
+
onChange: this.onValueChanged,
|
|
81
|
+
onClick: this.onInputClick,
|
|
82
|
+
placeholder: getLocale('Find_a_collaborator')
|
|
83
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
84
|
+
className: "collaborator-list-container"
|
|
85
|
+
}, collaborators.length > 0 && collaborators.map(function (collaborator, index) {
|
|
86
|
+
var isSelect = selectedCollaborators.some(function (selectedCollaborator) {
|
|
87
|
+
return selectedCollaborator.email === collaborator.email;
|
|
88
|
+
});
|
|
89
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
90
|
+
key: index,
|
|
91
|
+
className: "collaborator-item-container",
|
|
92
|
+
onClick: _this2.onCollaboratorItemToggle.bind(_this2, collaborator)
|
|
93
|
+
}, /*#__PURE__*/React.createElement(CollaboratorItem, {
|
|
94
|
+
collaborator: collaborator
|
|
95
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: "collaborator-checked"
|
|
97
|
+
}, isSelect && /*#__PURE__*/React.createElement("i", {
|
|
98
|
+
className: "dtable-font dtable-icon-check-mark"
|
|
99
|
+
})));
|
|
100
|
+
}), collaborators.length === 0 && /*#__PURE__*/React.createElement("div", {
|
|
101
|
+
className: "search-option-null"
|
|
102
|
+
}, getLocale('No_collaborators_available'))));
|
|
103
|
+
}
|
|
104
|
+
}]);
|
|
105
|
+
|
|
106
|
+
return PCCollaboratorEditorPopover;
|
|
107
|
+
}(React.Component);
|
|
108
|
+
|
|
109
|
+
export default PCCollaboratorEditorPopover;
|
|
@@ -0,0 +1,142 @@
|
|
|
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 moment from 'moment';
|
|
7
|
+
import DatePicker from '@seafile/seafile-calendar/lib/Picker';
|
|
8
|
+
import Calendar from '@seafile/seafile-calendar';
|
|
9
|
+
import { initDateEditorLanguage } from '../../utils/editor-utils';
|
|
10
|
+
import '@seafile/seafile-calendar/assets/index.css';
|
|
11
|
+
import { getLocale } from '../../lang';
|
|
12
|
+
|
|
13
|
+
var PCDateEditorPopover = /*#__PURE__*/function (_React$Component) {
|
|
14
|
+
_inherits(PCDateEditorPopover, _React$Component);
|
|
15
|
+
|
|
16
|
+
var _super = _createSuper(PCDateEditorPopover);
|
|
17
|
+
|
|
18
|
+
function PCDateEditorPopover(props) {
|
|
19
|
+
var _this;
|
|
20
|
+
|
|
21
|
+
_classCallCheck(this, PCDateEditorPopover);
|
|
22
|
+
|
|
23
|
+
_this = _super.call(this, props);
|
|
24
|
+
|
|
25
|
+
_this.onChange = function (value) {
|
|
26
|
+
if (!value) return;
|
|
27
|
+
var dateFormat = _this.props.dateFormat;
|
|
28
|
+
|
|
29
|
+
_this.setState({
|
|
30
|
+
datePickerValue: value,
|
|
31
|
+
open: true // if value changed, don't close datePicker
|
|
32
|
+
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
_this.props.onValueChanged(value.format(dateFormat));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
_this.onOpenChange = function (open) {
|
|
39
|
+
_this.setState({
|
|
40
|
+
open: open
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
return;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
_this.onClear = function () {
|
|
47
|
+
_this.setState({
|
|
48
|
+
datePickerValue: null
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
_this.onFocusDatePicker = function () {
|
|
53
|
+
_this.setState({
|
|
54
|
+
open: true
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
_this.handleMouseDown = function (event) {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
event.stopPropagation();
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
_this.getCalendarContainer = function () {
|
|
64
|
+
return _this.calendarContainerRef.current;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
_this.getCalender = function () {
|
|
68
|
+
var _this$props = _this.props,
|
|
69
|
+
dateFormat = _this$props.dateFormat,
|
|
70
|
+
showHourAndMinute = _this$props.showHourAndMinute,
|
|
71
|
+
lang = _this$props.lang;
|
|
72
|
+
var defaultValue = moment().clone();
|
|
73
|
+
return /*#__PURE__*/React.createElement(Calendar, {
|
|
74
|
+
locale: initDateEditorLanguage(lang),
|
|
75
|
+
style: {
|
|
76
|
+
zIndex: 1001
|
|
77
|
+
},
|
|
78
|
+
format: dateFormat,
|
|
79
|
+
defaultValue: defaultValue,
|
|
80
|
+
showHourAndMinute: showHourAndMinute,
|
|
81
|
+
dateInputPlaceholder: getLocale('Please_input'),
|
|
82
|
+
showDateInput: true,
|
|
83
|
+
focusablePanel: false,
|
|
84
|
+
onClear: _this.onClear
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
_this.state = {
|
|
89
|
+
open: true,
|
|
90
|
+
datePickerValue: props.value ? moment(props.value) : null
|
|
91
|
+
};
|
|
92
|
+
_this.calendarContainerRef = React.createRef();
|
|
93
|
+
return _this;
|
|
94
|
+
} // event trigger sequence: onOpenChange --> onChange
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
_createClass(PCDateEditorPopover, [{
|
|
98
|
+
key: "render",
|
|
99
|
+
value: function render() {
|
|
100
|
+
var _this2 = this;
|
|
101
|
+
|
|
102
|
+
var dateFormat = this.props.dateFormat;
|
|
103
|
+
var _this$state = this.state,
|
|
104
|
+
open = _this$state.open,
|
|
105
|
+
datePickerValue = _this$state.datePickerValue;
|
|
106
|
+
var calendar = this.getCalender();
|
|
107
|
+
return /*#__PURE__*/React.createElement(DatePicker, {
|
|
108
|
+
open: open,
|
|
109
|
+
value: datePickerValue,
|
|
110
|
+
animation: "slide-up",
|
|
111
|
+
style: {
|
|
112
|
+
zIndex: 1001
|
|
113
|
+
},
|
|
114
|
+
calendar: calendar,
|
|
115
|
+
getCalendarContainer: this.getCalendarContainer,
|
|
116
|
+
onChange: this.onChange,
|
|
117
|
+
onOpenChange: this.onOpenChange
|
|
118
|
+
}, function (_ref) {
|
|
119
|
+
var value = _ref.value;
|
|
120
|
+
value = value && value.format(dateFormat);
|
|
121
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
122
|
+
className: "dtable-ui-date-editor-container",
|
|
123
|
+
tabIndex: "0",
|
|
124
|
+
onFocus: _this2.onFocusDatePicker
|
|
125
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
126
|
+
readOnly: true,
|
|
127
|
+
tabIndex: "-1",
|
|
128
|
+
className: "form-control",
|
|
129
|
+
placeholder: getLocale('Please_select'),
|
|
130
|
+
value: value || '',
|
|
131
|
+
onMouseDown: _this2.handleMouseDown
|
|
132
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
133
|
+
ref: _this2.calendarContainerRef
|
|
134
|
+
}));
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}]);
|
|
138
|
+
|
|
139
|
+
return PCDateEditorPopover;
|
|
140
|
+
}(React.Component);
|
|
141
|
+
|
|
142
|
+
export default PCDateEditorPopover;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
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
|
+
|
|
9
|
+
var PCLinkEditorPopover = /*#__PURE__*/function (_React$Component) {
|
|
10
|
+
_inherits(PCLinkEditorPopover, _React$Component);
|
|
11
|
+
|
|
12
|
+
var _super = _createSuper(PCLinkEditorPopover);
|
|
13
|
+
|
|
14
|
+
function PCLinkEditorPopover(props) {
|
|
15
|
+
var _this;
|
|
16
|
+
|
|
17
|
+
_classCallCheck(this, PCLinkEditorPopover);
|
|
18
|
+
|
|
19
|
+
_this = _super.call(this, props);
|
|
20
|
+
|
|
21
|
+
_this.onValueChanged = function (event) {
|
|
22
|
+
var value = event.target.value;
|
|
23
|
+
|
|
24
|
+
_this.setState({
|
|
25
|
+
searchValue: value
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
_this.onInputClick = function (event) {
|
|
30
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
_this.onOptionItemToggle = function (item) {
|
|
35
|
+
_this.props.onOptionItemToggle(item);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
_this.getFilterOptions = function () {
|
|
39
|
+
var options = _this.props.options;
|
|
40
|
+
|
|
41
|
+
var filter = _this.state.searchValue.toLowerCase();
|
|
42
|
+
|
|
43
|
+
if (!filter) {
|
|
44
|
+
return options;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return options.filter(function (option) {
|
|
48
|
+
return option.name.toString().toLowerCase().indexOf(filter) > -1;
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
_this.state = {
|
|
53
|
+
searchValue: ''
|
|
54
|
+
};
|
|
55
|
+
return _this;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
_createClass(PCLinkEditorPopover, [{
|
|
59
|
+
key: "render",
|
|
60
|
+
value: function render() {
|
|
61
|
+
var _this2 = this;
|
|
62
|
+
|
|
63
|
+
var options = this.getFilterOptions();
|
|
64
|
+
var _this$props = this.props,
|
|
65
|
+
popoverPosition = _this$props.popoverPosition,
|
|
66
|
+
selectedOptions = _this$props.selectedOptions;
|
|
67
|
+
var searchValue = this.state.searchValue;
|
|
68
|
+
var popoverStyle = Object.assign({}, _objectSpread({}, popoverPosition), {
|
|
69
|
+
position: 'absolute'
|
|
70
|
+
});
|
|
71
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
72
|
+
className: "dtable-ui-editor-popover dtable-ui-link-editor-popover",
|
|
73
|
+
style: popoverStyle
|
|
74
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
75
|
+
className: "link-options-search"
|
|
76
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
77
|
+
className: "form-control",
|
|
78
|
+
value: searchValue,
|
|
79
|
+
onChange: this.onValueChanged,
|
|
80
|
+
onClick: this.onInputClick,
|
|
81
|
+
placeholder: getLocale('Find_an_option')
|
|
82
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
83
|
+
className: "link-options-container"
|
|
84
|
+
}, options.length > 0 && options.map(function (option, index) {
|
|
85
|
+
var isSelect = selectedOptions.some(function (selectedOption) {
|
|
86
|
+
return selectedOption.id === option.id;
|
|
87
|
+
});
|
|
88
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
89
|
+
key: index,
|
|
90
|
+
className: "link-option-item",
|
|
91
|
+
onClick: _this2.onOptionItemToggle.bind(_this2, option)
|
|
92
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
93
|
+
className: "option-info"
|
|
94
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
className: "option-name"
|
|
96
|
+
}, option.name)), /*#__PURE__*/React.createElement("div", {
|
|
97
|
+
className: "option-checked"
|
|
98
|
+
}, isSelect && /*#__PURE__*/React.createElement("i", {
|
|
99
|
+
className: "dtable-font dtable-icon-check-mark"
|
|
100
|
+
})));
|
|
101
|
+
}), options.length === 0 && /*#__PURE__*/React.createElement("div", {
|
|
102
|
+
className: "link-option-null"
|
|
103
|
+
}, getLocale('No_options_available'))));
|
|
104
|
+
}
|
|
105
|
+
}]);
|
|
106
|
+
|
|
107
|
+
return PCLinkEditorPopover;
|
|
108
|
+
}(React.Component);
|
|
109
|
+
|
|
110
|
+
PCLinkEditorPopover.defaultProps = {
|
|
111
|
+
popoverPosition: {},
|
|
112
|
+
options: []
|
|
113
|
+
};
|
|
114
|
+
export default PCLinkEditorPopover;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
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
|
+
|
|
9
|
+
var PCSelectEditorPopover = /*#__PURE__*/function (_React$Component) {
|
|
10
|
+
_inherits(PCSelectEditorPopover, _React$Component);
|
|
11
|
+
|
|
12
|
+
var _super = _createSuper(PCSelectEditorPopover);
|
|
13
|
+
|
|
14
|
+
function PCSelectEditorPopover(props) {
|
|
15
|
+
var _this;
|
|
16
|
+
|
|
17
|
+
_classCallCheck(this, PCSelectEditorPopover);
|
|
18
|
+
|
|
19
|
+
_this = _super.call(this, props);
|
|
20
|
+
|
|
21
|
+
_this.onValueChanged = function (event) {
|
|
22
|
+
var value = event.target.value;
|
|
23
|
+
|
|
24
|
+
_this.setState({
|
|
25
|
+
searchValue: value
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
_this.onInputClick = function (event) {
|
|
30
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
_this.onAddNewOption = function () {
|
|
35
|
+
var name = _this.state.searchValue.trim();
|
|
36
|
+
|
|
37
|
+
_this.props.onAddNewOption(name);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
_this.onOptionItemToggle = function (item) {
|
|
41
|
+
_this.props.onOptionItemToggle(item);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
_this.getFilterOptions = function () {
|
|
45
|
+
var options = _this.props.options;
|
|
46
|
+
|
|
47
|
+
var filter = _this.state.searchValue.toLowerCase();
|
|
48
|
+
|
|
49
|
+
if (!filter) {
|
|
50
|
+
return options;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return options.filter(function (option) {
|
|
54
|
+
return option.name.toString().toLowerCase().indexOf(filter) > -1;
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
_this.getOptionStyle = function (option) {
|
|
59
|
+
var textColor = option.textColor || null;
|
|
60
|
+
return {
|
|
61
|
+
display: 'inline-block',
|
|
62
|
+
padding: '0px 10px',
|
|
63
|
+
height: '20px',
|
|
64
|
+
lineHeight: '20px',
|
|
65
|
+
borderRadius: '10px',
|
|
66
|
+
fontSize: '13px',
|
|
67
|
+
backgroundColor: option.color,
|
|
68
|
+
color: textColor
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
_this.state = {
|
|
73
|
+
searchValue: ''
|
|
74
|
+
};
|
|
75
|
+
return _this;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
_createClass(PCSelectEditorPopover, [{
|
|
79
|
+
key: "render",
|
|
80
|
+
value: function render() {
|
|
81
|
+
var _this2 = this;
|
|
82
|
+
|
|
83
|
+
var options = this.getFilterOptions();
|
|
84
|
+
var _this$props = this.props,
|
|
85
|
+
popoverPosition = _this$props.popoverPosition,
|
|
86
|
+
selectedOptions = _this$props.selectedOptions,
|
|
87
|
+
isSupportNewOption = _this$props.isSupportNewOption;
|
|
88
|
+
var searchValue = this.state.searchValue;
|
|
89
|
+
var popoverStyle = Object.assign({}, _objectSpread({}, popoverPosition), {
|
|
90
|
+
position: 'absolute'
|
|
91
|
+
});
|
|
92
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
93
|
+
className: "dtable-ui-editor-popover dtable-ui-select-editor-popover",
|
|
94
|
+
style: popoverStyle
|
|
95
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: "select-options-search"
|
|
97
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
98
|
+
className: "form-control",
|
|
99
|
+
onChange: this.onValueChanged,
|
|
100
|
+
onClick: this.onInputClick,
|
|
101
|
+
placeholder: getLocale('Find_an_option')
|
|
102
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: "select-options-container"
|
|
104
|
+
}, options.length > 0 && options.map(function (option, index) {
|
|
105
|
+
var optionStyle = _this2.getOptionStyle(option);
|
|
106
|
+
|
|
107
|
+
var isSelect = selectedOptions.some(function (selectedOption) {
|
|
108
|
+
return selectedOption.id === option.id;
|
|
109
|
+
});
|
|
110
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
111
|
+
key: index,
|
|
112
|
+
className: "select-option-item",
|
|
113
|
+
onClick: _this2.onOptionItemToggle.bind(_this2, option)
|
|
114
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
115
|
+
className: "option-info"
|
|
116
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
117
|
+
className: "option-name",
|
|
118
|
+
style: optionStyle
|
|
119
|
+
}, option.name)), /*#__PURE__*/React.createElement("div", {
|
|
120
|
+
className: "option-checked"
|
|
121
|
+
}, isSelect && /*#__PURE__*/React.createElement("i", {
|
|
122
|
+
className: "dtable-font dtable-icon-check-mark"
|
|
123
|
+
})));
|
|
124
|
+
}), options.length === 0 && /*#__PURE__*/React.createElement("div", {
|
|
125
|
+
className: "search-option-null"
|
|
126
|
+
}, getLocale('No_options_available'))), isSupportNewOption && !!searchValue && /*#__PURE__*/React.createElement("div", {
|
|
127
|
+
className: "select-options-add",
|
|
128
|
+
onClick: this.onAddNewOption
|
|
129
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
130
|
+
className: "dtable-font dtable-icon-add-table"
|
|
131
|
+
}), /*#__PURE__*/React.createElement("span", null, getLocale('Add_an_option'), ' ', searchValue)));
|
|
132
|
+
}
|
|
133
|
+
}]);
|
|
134
|
+
|
|
135
|
+
return PCSelectEditorPopover;
|
|
136
|
+
}(React.Component);
|
|
137
|
+
|
|
138
|
+
PCSelectEditorPopover.defaultProps = {
|
|
139
|
+
popoverPosition: {},
|
|
140
|
+
options: [],
|
|
141
|
+
isShowAddBtn: false
|
|
142
|
+
};
|
|
143
|
+
export default PCSelectEditorPopover;
|
package/es/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { default as toaster } from './components/toast';
|
|
|
2
2
|
export { setLocale } from './lang';
|
|
3
3
|
export { getDateDisplayString, getNumberDisplayString, formatStringToNumber, formatNumberString } from './utils/value-format-utils';
|
|
4
4
|
export { default as Loading } from './components/loading';
|
|
5
|
-
export { TextFormatter, NumberFormatter, CheckboxFormatter, DateFormatter, SingleSelectFormatter, MultipleSelectFormatter, CollaboratorFormatter, ImageFormatter, FileFormatter, LongTextFormatter, GeolocationFormatter, LinkFormatter, FormulaFormatter, CTimeFormatter, CreatorFormatter, LastModifierFormatter, MTimeFormatter, AutoNumberFormatter, UrlFormatter, EmailFormatter, DurationFormatter, RateFormatter, ButtonFormatter, FileItemFormatter, ImagePreviewerLightbox, CollaboratorItem } from './components/cell-formatter';
|
|
5
|
+
export { TextFormatter, NumberFormatter, CheckboxFormatter, DateFormatter, SingleSelectFormatter, MultipleSelectFormatter, CollaboratorFormatter, ImageFormatter, FileFormatter, LongTextFormatter, GeolocationFormatter, LinkFormatter, FormulaFormatter, CTimeFormatter, CreatorFormatter, LastModifierFormatter, MTimeFormatter, AutoNumberFormatter, UrlFormatter, EmailFormatter, DurationFormatter, RateFormatter, ButtonFormatter, FileItemFormatter, ImagePreviewerLightbox, CollaboratorItem } from './components/cell-formatter';
|
|
6
|
+
export { TextEditor, NumberEditor, CheckboxEditor, SingleSelectEditor, CollaboratorEditor, DateEditor, LinkEditor } from './components/cell-editor';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var zhCN = require('@seafile/seafile-calendar/lib/locale/zh_CN');
|
|
2
|
+
|
|
3
|
+
var zhTW = require('@seafile/seafile-calendar/lib/locale/zh_TW');
|
|
4
|
+
|
|
5
|
+
var enUS = require('@seafile/seafile-calendar/lib/locale/en_US');
|
|
6
|
+
|
|
7
|
+
var frFR = require('@seafile/seafile-calendar/lib/locale/fr_FR');
|
|
8
|
+
|
|
9
|
+
var deDE = require('@seafile/seafile-calendar/lib/locale/de_DE');
|
|
10
|
+
|
|
11
|
+
var esES = require('@seafile/seafile-calendar/lib/locale/es_ES');
|
|
12
|
+
|
|
13
|
+
var plPL = require('@seafile/seafile-calendar/lib/locale/pl_PL');
|
|
14
|
+
|
|
15
|
+
var csCZ = require('@seafile/seafile-calendar/lib/locale/cs_CZ');
|
|
16
|
+
|
|
17
|
+
export var initDateEditorLanguage = function initDateEditorLanguage(lang) {
|
|
18
|
+
var language;
|
|
19
|
+
|
|
20
|
+
switch (lang) {
|
|
21
|
+
case 'zh-cn':
|
|
22
|
+
language = zhCN;
|
|
23
|
+
break;
|
|
24
|
+
|
|
25
|
+
case 'zh-tw':
|
|
26
|
+
language = zhTW;
|
|
27
|
+
break;
|
|
28
|
+
|
|
29
|
+
case 'en':
|
|
30
|
+
language = enUS;
|
|
31
|
+
break;
|
|
32
|
+
|
|
33
|
+
case 'fr':
|
|
34
|
+
language = frFR;
|
|
35
|
+
break;
|
|
36
|
+
|
|
37
|
+
case 'de':
|
|
38
|
+
language = deDE;
|
|
39
|
+
break;
|
|
40
|
+
|
|
41
|
+
case 'es':
|
|
42
|
+
language = esES;
|
|
43
|
+
break;
|
|
44
|
+
|
|
45
|
+
case 'es-ar':
|
|
46
|
+
language = esES;
|
|
47
|
+
break;
|
|
48
|
+
|
|
49
|
+
case 'es-mx':
|
|
50
|
+
language = esES;
|
|
51
|
+
break;
|
|
52
|
+
|
|
53
|
+
case 'pl':
|
|
54
|
+
language = plPL;
|
|
55
|
+
break;
|
|
56
|
+
|
|
57
|
+
case 'cs':
|
|
58
|
+
language = csCZ;
|
|
59
|
+
break;
|
|
60
|
+
|
|
61
|
+
default:
|
|
62
|
+
language = zhCN;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return language;
|
|
66
|
+
};
|
|
67
|
+
export var getSelectOptionItem = function getSelectOptionItem(options, optionId) {
|
|
68
|
+
return options.find(function (option) {
|
|
69
|
+
return option.id === optionId;
|
|
70
|
+
});
|
|
71
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var hrefReg = /\[.+\]\(\S+\)|<img src=(\S+).+\/>|!\[\]\(\S+\)|<\S+>/g;
|
|
2
|
-
var imageReg1 = /^<img src="(\S+)"
|
|
2
|
+
var imageReg1 = /^<img( width=[\\|/|"](\d)+[\\|/|"])? src="(\S+)" .?\/>/;
|
|
3
3
|
var imageReg2 = /^!\[\]\((\S+)\)/;
|
|
4
4
|
var linkReg1 = /^\[.+\]\(\S+\)/;
|
|
5
5
|
var linkReg2 = /^<\S+>$/;
|
|
@@ -39,7 +39,7 @@ var getPreviewContent = function getPreviewContent(markdownContent) {
|
|
|
39
39
|
preview += newMarkdownContent[index];
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
if (preview.length ===
|
|
42
|
+
if (preview.length === 150) {
|
|
43
43
|
break;
|
|
44
44
|
}
|
|
45
45
|
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dtable-ui-component",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.75beta",
|
|
4
4
|
"main": "./es/index.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@seafile/react-image-lightbox": "0.0.9",
|
|
7
|
+
"@seafile/seafile-calendar": "0.0.15",
|
|
8
|
+
"antd-mobile": "^2.3.3",
|
|
7
9
|
"astro-classname": "^2.1.0",
|
|
8
10
|
"bail": "1.0.5",
|
|
9
11
|
"deepmerge": "^2.1.0",
|