dtable-ui-component 4.4.3-2 → 4.4.3-alpha1
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/lib/AutoNumberFormatter/index.js +7 -14
- package/lib/ButtonFormatter/index.js +9 -16
- package/lib/CTimeFormatter/index.js +9 -16
- package/lib/CheckboxEditor/index.js +8 -15
- package/lib/CheckboxFormatter/index.js +8 -15
- package/lib/CollaboratorEditor/index.js +21 -29
- package/lib/CollaboratorEditor/mb-collaborator-editor-popover/index.js +25 -32
- package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +18 -25
- package/lib/CollaboratorFormatter/index.js +12 -19
- package/lib/CollaboratorItem/index.js +10 -17
- package/lib/CreatorFormatter/index.js +12 -19
- package/lib/DTableCommonAddTool/index.js +6 -13
- package/lib/DTableCustomizeCollaboratorSelect/index.js +18 -26
- package/lib/DTableCustomizeSelect/index.js +15 -23
- package/lib/DTableFiltersPopover/constants/index.js +33 -38
- package/lib/DTableFiltersPopover/index.js +31 -38
- package/lib/DTableFiltersPopover/utils/filter-item-utils.js +46 -53
- package/lib/DTableFiltersPopover/utils/index.js +99 -128
- package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.js +26 -34
- package/lib/DTableFiltersPopover/widgets/department-select-filter/department-multiple-select-filter.js +25 -33
- package/lib/DTableFiltersPopover/widgets/department-select-filter/department-single-select-filter.js +26 -34
- package/lib/DTableFiltersPopover/widgets/filter-calendar.js +26 -34
- package/lib/DTableFiltersPopover/widgets/filter-item.js +120 -128
- package/lib/DTableFiltersPopover/widgets/filter-list/index.js +18 -26
- package/lib/DTableFiltersPopover/widgets/rate-item.js +8 -15
- package/lib/DTablePopover/index.js +8 -15
- package/lib/DTablePopover/utils.js +2 -9
- package/lib/DTableRadio/index.js +10 -17
- package/lib/DTableSearchInput/index.js +13 -21
- package/lib/DTableSearchInput/utils.js +2 -9
- package/lib/DTableSelect/dtable-select-label.js +6 -13
- package/lib/DTableSelect/index.js +10 -18
- package/lib/DTableSelect/utils.js +10 -20
- package/lib/DTableSwitch/index.js +7 -14
- package/lib/DateEditor/index.js +22 -30
- package/lib/DateEditor/mb-date-editor-popover/index.js +47 -55
- package/lib/DateEditor/pc-date-editor-popover.js +20 -27
- package/lib/DateFormatter/index.js +9 -16
- package/lib/Department-editor/constants.js +1 -7
- package/lib/Department-editor/department-multiple-select/index.js +24 -32
- package/lib/Department-editor/department-single-select.js +33 -41
- package/lib/Department-editor/index.js +14 -22
- package/lib/Department-editor/selected-departments/index.js +25 -32
- package/lib/Department-editor/utils.js +3 -11
- package/lib/DepartmentSingleSelectFormatter/index.js +9 -16
- package/lib/DigitalSignFormatter/index.js +15 -23
- package/lib/DigitalSignFormatter/utils.js +3 -11
- package/lib/DurationFormatter/index.js +9 -16
- package/lib/EditEditorButton/index.js +5 -12
- package/lib/EmailFormatter/index.js +7 -14
- package/lib/FieldDisplaySetting/field-item.js +14 -21
- package/lib/FieldDisplaySetting/index.js +19 -27
- package/lib/FileEditor/index.js +8 -15
- package/lib/FileEditor/pc-files-addition/index.js +0 -1
- package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +0 -1
- package/lib/FileEditor/pc-files-preview/index.js +0 -1
- package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +0 -1
- package/lib/FileFormatter/index.js +11 -19
- package/lib/FileItemFormatter/index.js +6 -14
- package/lib/FileItemFormatter/utils.js +2 -9
- package/lib/FileUploader/index.js +4 -11
- package/lib/FormulaFormatter/cell-value-validator.js +18 -24
- package/lib/FormulaFormatter/index.js +32 -39
- package/lib/FormulaFormatter/utils.js +13 -29
- package/lib/GeolocationFormatter/index.js +9 -16
- package/lib/HtmlLongTextFormatter/index.js +9 -17
- package/lib/HtmlLongTextFormatter/markdown2html.js +47 -0
- package/lib/HtmlLongTextFormatter/unified/index.js +400 -0
- package/lib/HtmlLongTextFormatter/vfile/core.js +155 -0
- package/lib/HtmlLongTextFormatter/vfile/index.js +40 -0
- package/lib/ImageFormatter/images-lazy-load.js +9 -16
- package/lib/ImageFormatter/index.js +16 -24
- package/lib/ImageFormatter/utils.js +2 -9
- package/lib/ImagePreviewerLightbox/index.js +12 -19
- package/lib/ImagePreviewerLightbox/utils.js +3 -11
- package/lib/LastModifierFormatter/index.js +12 -19
- package/lib/LinkEditor/index.js +25 -33
- package/lib/LinkEditor/link-editor-option.js +8 -15
- package/lib/LinkEditor/mb-link-editor-popover/index.js +23 -30
- package/lib/LinkEditor/pc-link-editor-popover/index.js +17 -24
- package/lib/LinkFormatter/index.js +13 -20
- package/lib/Loading/index.js +4 -11
- package/lib/LongTextFormatter/index.js +6 -13
- package/lib/MBEditorHeader/index.js +7 -14
- package/lib/MTimeFormatter/index.js +9 -16
- package/lib/ModalPortal/index.js +5 -12
- package/lib/MultipleSelectEditor/index.js +17 -25
- package/lib/MultipleSelectFormatter/index.js +10 -17
- package/lib/NotificationPopover/index.js +16 -24
- package/lib/NumberEditor/index.js +18 -25
- package/lib/NumberFormatter/index.js +9 -16
- package/lib/RateFormatter/index.js +8 -15
- package/lib/RoleStatusEditor/index.js +14 -22
- package/lib/RowExpandEmailFormatter/index.js +10 -17
- package/lib/RowExpandFileFormatter/index.js +8 -16
- package/lib/RowExpandFileFormatter/row-expand-file-item-formatter.js +18 -27
- package/lib/RowExpandFormatter/index.js +78 -86
- package/lib/RowExpandFormulaFormatter/index.js +34 -42
- package/lib/RowExpandImageFormatter/index.js +10 -19
- package/lib/RowExpandImageFormatter/row-expand-image-item-formatter.js +18 -27
- package/lib/RowExpandImageFormatter/utils.js +2 -9
- package/lib/RowExpandLinkFormatter/collaborator-item-formatter.js +7 -16
- package/lib/RowExpandLinkFormatter/index.js +37 -46
- package/lib/RowExpandLinkFormatter/utils.js +6 -17
- package/lib/RowExpandLinkFormatter/value-display-utils.js +5 -12
- package/lib/RowExpandRateFormatter/index.js +8 -15
- package/lib/RowExpandUrlFormatter/index.js +14 -21
- package/lib/SelectItem/index.js +4 -12
- package/lib/SelectOptionGroup/KeyCodes.js +1 -7
- package/lib/SelectOptionGroup/index.js +33 -32
- package/lib/SelectOptionGroup/option.js +4 -19
- package/lib/SimpleLongTextFormatter/index.js +20 -27
- package/lib/SimpleLongTextFormatter/normalize-long-text-value.js +1 -7
- package/lib/SimpleLongTextFormatter/widgets/LongTextPreview.js +8 -15
- package/lib/SimpleLongTextFormatter/widgets/dtable-markdown-viewer.js +7 -14
- package/lib/SingleSelectEditor/index.js +18 -26
- package/lib/SingleSelectFormatter/index.js +9 -16
- package/lib/TextEditor/index.js +7 -14
- package/lib/TextFormatter/index.js +7 -14
- package/lib/UrlFormatter/index.js +7 -14
- package/lib/cellFormatterFactory/index.js +4 -11
- package/lib/common/ClickOutside.js +4 -12
- package/lib/common/delete-tip.js +12 -20
- package/lib/common/modal-portal.js +5 -13
- package/lib/constants/index.js +9 -28
- package/lib/data/dtable-value.js +6 -11
- package/lib/formatterConfig/base-formatter-config.js +46 -53
- package/lib/formatterConfig/index.js +9 -16
- package/lib/hooks/common-hooks.js +4 -11
- package/lib/index.js +75 -432
- package/lib/lang/index.js +13 -24
- package/lib/locals/de.js +1 -7
- package/lib/locals/en.js +1 -7
- package/lib/locals/fr.js +1 -7
- package/lib/locals/zh-CN.js +1 -7
- package/lib/select-editor/index.js +4 -27
- package/lib/select-editor/mb-select-editor-popover/index.js +33 -41
- package/lib/select-editor/pc-select-editor-popover/index.js +19 -26
- package/lib/select-editor/select-editor-option.js +8 -15
- package/lib/toaster/alert.js +11 -18
- package/lib/toaster/index.js +3 -10
- package/lib/toaster/toast.js +8 -16
- package/lib/toaster/toastManager.js +5 -13
- package/lib/toaster/toaster.js +7 -15
- package/lib/utils/dayjs.js +4 -11
- package/lib/utils/editor-utils.js +5 -15
- package/lib/utils/event-bus.js +1 -7
- package/lib/utils/utils.js +6 -17
- package/package.json +77 -63
|
@@ -1,22 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _seafileCalendar = _interopRequireDefault(require("@seafile/seafile-calendar"));
|
|
13
|
-
var SeaDatePicker = _interopRequireWildcard(require("@seafile/seafile-calendar/lib/Picker"));
|
|
14
|
-
var _lang = require("../../lang");
|
|
15
|
-
var _editorUtils = require("../../utils/editor-utils");
|
|
16
|
-
var _MBEditorHeader = _interopRequireDefault(require("../../MBEditorHeader"));
|
|
17
|
-
require("@seafile/seafile-calendar/assets/index.css");
|
|
18
|
-
require("./index.css");
|
|
19
|
-
class DateEditorPopover extends _react.default.PureComponent {
|
|
1
|
+
import _DatePicker from "antd-mobile/lib/date-picker";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import Calendar from '@seafile/seafile-calendar';
|
|
5
|
+
import * as SeaDatePicker from '@seafile/seafile-calendar/lib/Picker';
|
|
6
|
+
import { getLocale } from '../../lang';
|
|
7
|
+
import { initDateEditorLanguage } from '../../utils/editor-utils';
|
|
8
|
+
import MBEditorHeader from '../../MBEditorHeader';
|
|
9
|
+
import '@seafile/seafile-calendar/assets/index.css';
|
|
10
|
+
import './index.css';
|
|
11
|
+
class DateEditorPopover extends React.PureComponent {
|
|
20
12
|
constructor(props) {
|
|
21
13
|
super(props);
|
|
22
14
|
this.handleHistaryBack = e => {
|
|
@@ -28,18 +20,18 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
28
20
|
dateFormat,
|
|
29
21
|
showHourAndMinute
|
|
30
22
|
} = this.props;
|
|
31
|
-
let newValue = (
|
|
23
|
+
let newValue = dayjs(date);
|
|
32
24
|
if (showHourAndMinute) {
|
|
33
25
|
const {
|
|
34
26
|
datePickerValue
|
|
35
27
|
} = this.state;
|
|
36
28
|
const HM = datePickerValue.format('HH:mm');
|
|
37
29
|
const format = dateFormat.split(' ')[0]; // 'YYYY-MM-DD HH:mm'
|
|
38
|
-
const newDate = (
|
|
39
|
-
newValue = (
|
|
30
|
+
const newDate = dayjs(date).format(format) + ' ' + HM;
|
|
31
|
+
newValue = dayjs(newDate);
|
|
40
32
|
}
|
|
41
33
|
this.setState({
|
|
42
|
-
datePickerValue: (
|
|
34
|
+
datePickerValue: dayjs(date)
|
|
43
35
|
});
|
|
44
36
|
this.props.onValueChanged(newValue.format(dateFormat));
|
|
45
37
|
};
|
|
@@ -52,8 +44,8 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
52
44
|
} = this.props;
|
|
53
45
|
const format = dateFormat.split(' ')[0]; // 'YYYY-MM-DD HH:mm'
|
|
54
46
|
const YMD = datePickerValue.format(format);
|
|
55
|
-
const newDate = YMD + ' ' + (
|
|
56
|
-
const newValue = (
|
|
47
|
+
const newDate = YMD + ' ' + dayjs(time).format('HH:mm');
|
|
48
|
+
const newValue = dayjs(newDate);
|
|
57
49
|
this.setState({
|
|
58
50
|
datePickerValue: newValue
|
|
59
51
|
});
|
|
@@ -94,12 +86,12 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
94
86
|
dateFormat,
|
|
95
87
|
lang
|
|
96
88
|
} = this.props;
|
|
97
|
-
let defaultValue = (
|
|
98
|
-
return /*#__PURE__*/
|
|
99
|
-
locale:
|
|
89
|
+
let defaultValue = dayjs().clone();
|
|
90
|
+
return /*#__PURE__*/React.createElement(Calendar, {
|
|
91
|
+
locale: initDateEditorLanguage(lang),
|
|
100
92
|
format: dateFormat,
|
|
101
93
|
defaultValue: defaultValue,
|
|
102
|
-
dateInputPlaceholder:
|
|
94
|
+
dateInputPlaceholder: getLocale('Please_input'),
|
|
103
95
|
showDateInput: false,
|
|
104
96
|
focusablePanel: false,
|
|
105
97
|
showToday: false,
|
|
@@ -118,7 +110,7 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
118
110
|
datePickerValue
|
|
119
111
|
} = this.state;
|
|
120
112
|
let calendar = this.getCalender();
|
|
121
|
-
return /*#__PURE__*/
|
|
113
|
+
return /*#__PURE__*/React.createElement(SeaDatePicker, {
|
|
122
114
|
open: true,
|
|
123
115
|
style: {
|
|
124
116
|
width: '100%'
|
|
@@ -132,16 +124,16 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
132
124
|
value
|
|
133
125
|
} = _ref;
|
|
134
126
|
value = value && value.format(dateFormat);
|
|
135
|
-
return /*#__PURE__*/
|
|
127
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
136
128
|
tabIndex: "0",
|
|
137
129
|
onFocus: this.onReadOnlyFocus
|
|
138
|
-
}, /*#__PURE__*/
|
|
139
|
-
placeholder:
|
|
130
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
131
|
+
placeholder: getLocale('Please_select'),
|
|
140
132
|
readOnly: true,
|
|
141
133
|
tabIndex: "-1",
|
|
142
134
|
className: "form-control",
|
|
143
135
|
value: value || ''
|
|
144
|
-
}), /*#__PURE__*/
|
|
136
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
145
137
|
ref: this.calendarContainerRef,
|
|
146
138
|
style: {
|
|
147
139
|
height: '22rem'
|
|
@@ -151,9 +143,9 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
151
143
|
};
|
|
152
144
|
this.state = {
|
|
153
145
|
open: true,
|
|
154
|
-
datePickerValue: props.value ? (
|
|
146
|
+
datePickerValue: props.value ? dayjs(props.value) : dayjs().clone()
|
|
155
147
|
};
|
|
156
|
-
this.calendarContainerRef =
|
|
148
|
+
this.calendarContainerRef = React.createRef();
|
|
157
149
|
}
|
|
158
150
|
componentDidMount() {
|
|
159
151
|
history.pushState(null, null, '#'); // eslint-disable-line
|
|
@@ -174,48 +166,48 @@ class DateEditorPopover extends _react.default.PureComponent {
|
|
|
174
166
|
const {
|
|
175
167
|
datePickerValue
|
|
176
168
|
} = this.state;
|
|
177
|
-
return /*#__PURE__*/
|
|
169
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
178
170
|
ref: this.setEditorPopover,
|
|
179
171
|
className: "dtable-ui-mb-editor-popover mb-date-editor-popover",
|
|
180
172
|
onClick: this.onContainerClick
|
|
181
|
-
}, /*#__PURE__*/
|
|
173
|
+
}, /*#__PURE__*/React.createElement(MBEditorHeader, {
|
|
182
174
|
title: column.name,
|
|
183
|
-
leftContent: /*#__PURE__*/
|
|
175
|
+
leftContent: /*#__PURE__*/React.createElement("i", {
|
|
184
176
|
className: "dtable-font dtable-icon-return"
|
|
185
177
|
}),
|
|
186
|
-
rightContent: /*#__PURE__*/
|
|
178
|
+
rightContent: /*#__PURE__*/React.createElement("span", null, getLocale('Done')),
|
|
187
179
|
onLeftClick: this.props.onClosePopover,
|
|
188
180
|
onRightClick: this.props.onClosePopover
|
|
189
|
-
}), /*#__PURE__*/
|
|
181
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
190
182
|
className: "dtable-ui-mb-editor-body dtable-ui-mb-date-editor-body"
|
|
191
|
-
}, /*#__PURE__*/
|
|
183
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
192
184
|
className: "mb-date-editor-input"
|
|
193
|
-
}, /*#__PURE__*/
|
|
185
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
194
186
|
className: "date-input"
|
|
195
|
-
}, /*#__PURE__*/
|
|
187
|
+
}, /*#__PURE__*/React.createElement(_DatePicker, {
|
|
196
188
|
mode: "date",
|
|
197
|
-
locale:
|
|
189
|
+
locale: initDateEditorLanguage(lang),
|
|
198
190
|
value: this.state.value,
|
|
199
191
|
onChange: this.handleDateChange
|
|
200
|
-
}, /*#__PURE__*/
|
|
192
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
201
193
|
className: "date-input-day"
|
|
202
|
-
}, datePickerValue && datePickerValue.format(leftFormat)))), showHourAndMinute && /*#__PURE__*/
|
|
194
|
+
}, datePickerValue && datePickerValue.format(leftFormat)))), showHourAndMinute && /*#__PURE__*/React.createElement("div", {
|
|
203
195
|
className: "date-input"
|
|
204
|
-
}, /*#__PURE__*/
|
|
196
|
+
}, /*#__PURE__*/React.createElement(_DatePicker, {
|
|
205
197
|
mode: "time",
|
|
206
|
-
locale:
|
|
198
|
+
locale: initDateEditorLanguage(lang),
|
|
207
199
|
value: this.state.value,
|
|
208
200
|
onChange: this.handleTimeChange
|
|
209
|
-
}, /*#__PURE__*/
|
|
201
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
210
202
|
className: "date-input-day"
|
|
211
|
-
}, datePickerValue && datePickerValue.format(rightFormat))))), /*#__PURE__*/
|
|
203
|
+
}, datePickerValue && datePickerValue.format(rightFormat))))), /*#__PURE__*/React.createElement("div", {
|
|
212
204
|
className: "dtable-ui mb-date-editor-picker"
|
|
213
|
-
}, this.renderDataPicker()), /*#__PURE__*/
|
|
205
|
+
}, this.renderDataPicker()), /*#__PURE__*/React.createElement("div", {
|
|
214
206
|
className: "mb-date-editor-clear"
|
|
215
|
-
}, /*#__PURE__*/
|
|
207
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
216
208
|
onClick: this.deleteDate,
|
|
217
209
|
className: "clear-date"
|
|
218
|
-
},
|
|
210
|
+
}, getLocale('Clear')))));
|
|
219
211
|
}
|
|
220
212
|
}
|
|
221
|
-
|
|
213
|
+
export default DateEditorPopover;
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
-
var _Picker = _interopRequireDefault(require("@seafile/seafile-calendar/lib/Picker"));
|
|
11
|
-
var _seafileCalendar = _interopRequireDefault(require("@seafile/seafile-calendar"));
|
|
12
|
-
var _editorUtils = require("../utils/editor-utils");
|
|
13
|
-
require("@seafile/seafile-calendar/assets/index.css");
|
|
14
|
-
var _lang = require("../lang");
|
|
15
|
-
class PCDateEditorPopover extends _react.default.Component {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import DatePicker from '@seafile/seafile-calendar/lib/Picker';
|
|
4
|
+
import Calendar from '@seafile/seafile-calendar';
|
|
5
|
+
import { initDateEditorLanguage } from '../utils/editor-utils';
|
|
6
|
+
import '@seafile/seafile-calendar/assets/index.css';
|
|
7
|
+
import { getLocale } from '../lang';
|
|
8
|
+
class PCDateEditorPopover extends React.Component {
|
|
16
9
|
constructor(props) {
|
|
17
10
|
super(props);
|
|
18
11
|
// event trigger sequence: onOpenChange --> onChange
|
|
@@ -56,16 +49,16 @@ class PCDateEditorPopover extends _react.default.Component {
|
|
|
56
49
|
showHourAndMinute,
|
|
57
50
|
lang
|
|
58
51
|
} = this.props;
|
|
59
|
-
let defaultValue = (
|
|
60
|
-
return /*#__PURE__*/
|
|
61
|
-
locale:
|
|
52
|
+
let defaultValue = dayjs().clone();
|
|
53
|
+
return /*#__PURE__*/React.createElement(Calendar, {
|
|
54
|
+
locale: initDateEditorLanguage(lang),
|
|
62
55
|
style: {
|
|
63
56
|
zIndex: 1001
|
|
64
57
|
},
|
|
65
58
|
format: dateFormat,
|
|
66
59
|
defaultValue: defaultValue,
|
|
67
60
|
showHourAndMinute: showHourAndMinute,
|
|
68
|
-
dateInputPlaceholder:
|
|
61
|
+
dateInputPlaceholder: getLocale('Please_input'),
|
|
69
62
|
showDateInput: true,
|
|
70
63
|
focusablePanel: false,
|
|
71
64
|
onClear: this.onClear
|
|
@@ -73,9 +66,9 @@ class PCDateEditorPopover extends _react.default.Component {
|
|
|
73
66
|
};
|
|
74
67
|
this.state = {
|
|
75
68
|
open: true,
|
|
76
|
-
datePickerValue: props.value ? (
|
|
69
|
+
datePickerValue: props.value ? dayjs(props.value) : null
|
|
77
70
|
};
|
|
78
|
-
this.calendarContainerRef =
|
|
71
|
+
this.calendarContainerRef = React.createRef();
|
|
79
72
|
}
|
|
80
73
|
render() {
|
|
81
74
|
let {
|
|
@@ -86,7 +79,7 @@ class PCDateEditorPopover extends _react.default.Component {
|
|
|
86
79
|
datePickerValue
|
|
87
80
|
} = this.state;
|
|
88
81
|
const calendar = this.getCalender();
|
|
89
|
-
return /*#__PURE__*/
|
|
82
|
+
return /*#__PURE__*/React.createElement(DatePicker, {
|
|
90
83
|
open: open,
|
|
91
84
|
value: datePickerValue,
|
|
92
85
|
animation: "slide-up",
|
|
@@ -102,21 +95,21 @@ class PCDateEditorPopover extends _react.default.Component {
|
|
|
102
95
|
value
|
|
103
96
|
} = _ref;
|
|
104
97
|
value = value && value.format(dateFormat);
|
|
105
|
-
return /*#__PURE__*/
|
|
98
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
106
99
|
className: "dtable-ui-date-editor-container",
|
|
107
100
|
tabIndex: "0",
|
|
108
101
|
onFocus: this.onFocusDatePicker
|
|
109
|
-
}, /*#__PURE__*/
|
|
102
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
110
103
|
readOnly: true,
|
|
111
104
|
tabIndex: "-1",
|
|
112
105
|
className: "form-control",
|
|
113
|
-
placeholder:
|
|
106
|
+
placeholder: getLocale('Please_select'),
|
|
114
107
|
value: value || '',
|
|
115
108
|
onMouseDown: this.handleMouseDown
|
|
116
|
-
}), /*#__PURE__*/
|
|
109
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
117
110
|
ref: this.calendarContainerRef
|
|
118
111
|
}));
|
|
119
112
|
});
|
|
120
113
|
}
|
|
121
114
|
}
|
|
122
|
-
|
|
115
|
+
export default PCDateEditorPopover;
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
var _dtableUtils = require("dtable-utils");
|
|
11
|
-
require("./index.css");
|
|
12
|
-
class DateFormatter extends _react.default.Component {
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { getDateDisplayString } from 'dtable-utils';
|
|
4
|
+
import './index.css';
|
|
5
|
+
class DateFormatter extends React.Component {
|
|
13
6
|
render() {
|
|
14
7
|
let {
|
|
15
8
|
value: date,
|
|
16
9
|
format,
|
|
17
10
|
containerClassName
|
|
18
11
|
} = this.props;
|
|
19
|
-
let classname = (
|
|
12
|
+
let classname = classnames('dtable-ui cell-formatter-container date-formatter', containerClassName);
|
|
20
13
|
if (date !== '') {
|
|
21
|
-
date =
|
|
14
|
+
date = getDateDisplayString(date, format);
|
|
22
15
|
}
|
|
23
|
-
return /*#__PURE__*/
|
|
16
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
24
17
|
className: classname
|
|
25
18
|
}, date);
|
|
26
19
|
}
|
|
@@ -30,4 +23,4 @@ DateFormatter.defaultProps = {
|
|
|
30
23
|
format: 'YYYY-MM-DD',
|
|
31
24
|
containerClassName: ''
|
|
32
25
|
};
|
|
33
|
-
|
|
26
|
+
export default DateFormatter;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.DEPARTMENT_SELECT_RANGE_OPTIONS = void 0;
|
|
7
|
-
const DEPARTMENT_SELECT_RANGE_OPTIONS = exports.DEPARTMENT_SELECT_RANGE_OPTIONS = [{
|
|
1
|
+
export const DEPARTMENT_SELECT_RANGE_OPTIONS = [{
|
|
8
2
|
name: 'Current_user_department',
|
|
9
3
|
type: 'current_user_department'
|
|
10
4
|
}, {
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _utils = require("../utils");
|
|
11
|
-
var _selectedDepartments = _interopRequireDefault(require("../selected-departments"));
|
|
12
|
-
var _lang = require("../../lang");
|
|
13
|
-
require("./index.css");
|
|
1
|
+
import React, { Fragment, useState, useEffect, useRef } from 'react';
|
|
2
|
+
import { searchDepartments, getNormalizedDepartments } from '../utils';
|
|
3
|
+
import SelectedDepartments from '../selected-departments';
|
|
4
|
+
import { getLocale } from '../../lang';
|
|
5
|
+
import './index.css';
|
|
14
6
|
function DepartmentMultipleSelect(props) {
|
|
15
7
|
const {
|
|
16
8
|
value,
|
|
@@ -20,11 +12,11 @@ function DepartmentMultipleSelect(props) {
|
|
|
20
12
|
renderUserDepartmentOptions,
|
|
21
13
|
departments: initialDepartments
|
|
22
14
|
} = props;
|
|
23
|
-
const [searchVal, setSearchVal] =
|
|
24
|
-
const [departments, setDepartments] =
|
|
25
|
-
const departmentContainerRef =
|
|
26
|
-
const validDepartmentsRef =
|
|
27
|
-
|
|
15
|
+
const [searchVal, setSearchVal] = useState('');
|
|
16
|
+
const [departments, setDepartments] = useState(getNormalizedDepartments(initialDepartments));
|
|
17
|
+
const departmentContainerRef = useRef(null);
|
|
18
|
+
const validDepartmentsRef = useRef([]);
|
|
19
|
+
useEffect(() => {
|
|
28
20
|
if (departmentContainerRef.current) {
|
|
29
21
|
resetContainerPosition();
|
|
30
22
|
}
|
|
@@ -51,7 +43,7 @@ function DepartmentMultipleSelect(props) {
|
|
|
51
43
|
function onChangeSearch(event) {
|
|
52
44
|
const newSearchValue = event.target.value;
|
|
53
45
|
if (searchVal === newSearchValue) return;
|
|
54
|
-
validDepartmentsRef.current =
|
|
46
|
+
validDepartmentsRef.current = searchDepartments(departments, newSearchValue);
|
|
55
47
|
setSearchVal(newSearchValue);
|
|
56
48
|
}
|
|
57
49
|
function onClick(e) {
|
|
@@ -89,21 +81,21 @@ function DepartmentMultipleSelect(props) {
|
|
|
89
81
|
paddingLeft: hasChild ? '' : '16px'
|
|
90
82
|
};
|
|
91
83
|
const inputChecked = value.includes(id);
|
|
92
|
-
return /*#__PURE__*/
|
|
84
|
+
return /*#__PURE__*/React.createElement(Fragment, {
|
|
93
85
|
key: id
|
|
94
|
-
}, /*#__PURE__*/
|
|
86
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
95
87
|
className: "dropdown-item d-flex align-items-center",
|
|
96
88
|
onClick: event => onSelectDepartment(event, id)
|
|
97
|
-
}, /*#__PURE__*/
|
|
89
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
98
90
|
type: "checkbox",
|
|
99
91
|
className: "vam department-select-input",
|
|
100
92
|
checked: inputChecked,
|
|
101
93
|
style: inputStyle,
|
|
102
94
|
onChange: () => {}
|
|
103
|
-
}), hasChild && !searchVal && /*#__PURE__*/
|
|
95
|
+
}), hasChild && !searchVal && /*#__PURE__*/React.createElement("span", {
|
|
104
96
|
className: "dtable-font expand dtable-icon-".concat(isExpanded ? 'drop-down' : 'right-slide', " pr-1"),
|
|
105
97
|
onClick: event => onExpand(event, id, isExpanded)
|
|
106
|
-
}), /*#__PURE__*/
|
|
98
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
107
99
|
style: searchVal ? {} : nameStyle,
|
|
108
100
|
title: name,
|
|
109
101
|
className: "text-truncate"
|
|
@@ -119,33 +111,33 @@ function DepartmentMultipleSelect(props) {
|
|
|
119
111
|
const subDepartments = departments.filter(department => department.parent_id !== -1);
|
|
120
112
|
const topDepartment = departments.find(department => department.parent_id === -1);
|
|
121
113
|
if (!topDepartment) return null;
|
|
122
|
-
return /*#__PURE__*/
|
|
114
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
123
115
|
ref: departmentContainerRef,
|
|
124
116
|
onClick: onStopPropagation,
|
|
125
117
|
onMouseDown: onStopPropagation,
|
|
126
118
|
className: "dropdown-menu show departments-container dtable-ui ".concat(classNamePrefix)
|
|
127
|
-
}, isShowSelectedDepartments && /*#__PURE__*/
|
|
119
|
+
}, isShowSelectedDepartments && /*#__PURE__*/React.createElement("div", {
|
|
128
120
|
className: "selected-departments dtable-ui",
|
|
129
121
|
onClick: onClick
|
|
130
|
-
}, /*#__PURE__*/
|
|
122
|
+
}, /*#__PURE__*/React.createElement(SelectedDepartments, {
|
|
131
123
|
value: value,
|
|
132
124
|
removeDepartment: onCommit,
|
|
133
125
|
isShowRemoveIcon: true,
|
|
134
126
|
departments: departments
|
|
135
|
-
})), /*#__PURE__*/
|
|
127
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
136
128
|
className: "search-departments"
|
|
137
|
-
}, /*#__PURE__*/
|
|
129
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
138
130
|
className: "form-control",
|
|
139
131
|
type: "text",
|
|
140
132
|
autoFocus: true,
|
|
141
|
-
placeholder:
|
|
133
|
+
placeholder: getLocale('Find_a_department'),
|
|
142
134
|
value: searchVal,
|
|
143
135
|
onChange: onChangeSearch,
|
|
144
136
|
onClick: onClick
|
|
145
|
-
})), /*#__PURE__*/
|
|
137
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
146
138
|
className: "department-item-container"
|
|
147
139
|
}, !searchVal && renderUserDepartmentOptions && renderUserDepartmentOptions(), validDepartmentsRef.current.length > 0 && searchVal && renderSearchedDepartments(), !searchVal && renderDepartment(topDepartment, subDepartments, level)));
|
|
148
140
|
}
|
|
149
141
|
return renderDepartments();
|
|
150
142
|
}
|
|
151
|
-
|
|
143
|
+
export default DepartmentMultipleSelect;
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _dtableUtils = require("dtable-utils");
|
|
11
|
-
var _Loading = _interopRequireDefault(require("../Loading"));
|
|
12
|
-
var _utils = require("./utils");
|
|
13
|
-
var _lang = require("../lang");
|
|
14
|
-
class DepartmentSingleSelect extends _react.Component {
|
|
1
|
+
import React, { Component, Fragment } from 'react';
|
|
2
|
+
import { DEPARTMENT_SELECT_RANGE_MAP } from 'dtable-utils';
|
|
3
|
+
import Loading from '../Loading';
|
|
4
|
+
import { getNormalizedDepartments, searchDepartments } from './utils';
|
|
5
|
+
import { getLocale } from '../lang';
|
|
6
|
+
class DepartmentSingleSelect extends Component {
|
|
15
7
|
constructor(props) {
|
|
16
8
|
var _this;
|
|
17
9
|
super(props);
|
|
@@ -26,7 +18,7 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
26
18
|
}
|
|
27
19
|
};
|
|
28
20
|
this.initDepartments = departments => {
|
|
29
|
-
const normalizedDepartments =
|
|
21
|
+
const normalizedDepartments = getNormalizedDepartments(departments || []);
|
|
30
22
|
this.validDepartments = normalizedDepartments;
|
|
31
23
|
this.setState({
|
|
32
24
|
departments: normalizedDepartments
|
|
@@ -44,17 +36,17 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
44
36
|
} = userDepartmentIdsMap || {};
|
|
45
37
|
let targetDepartments = [];
|
|
46
38
|
let topParentIds = [];
|
|
47
|
-
if (selectedRange ===
|
|
39
|
+
if (selectedRange === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
|
|
48
40
|
topParentIds = current_user_department_ids;
|
|
49
41
|
targetDepartments = departments.filter(department => current_user_department_ids.includes(department.id));
|
|
50
|
-
} else if (selectedRange ===
|
|
42
|
+
} else if (selectedRange === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
51
43
|
const currentUserDepartments = departments.filter(department => current_user_department_ids.includes(department.id));
|
|
52
44
|
topParentIds = currentUserDepartments.filter(department => !current_user_department_ids.includes(department.parent_id)).map(department => department.id);
|
|
53
45
|
targetDepartments = departments.filter(department => current_user_department_and_sub_ids.includes(department.id));
|
|
54
46
|
} else {
|
|
55
47
|
targetDepartments = departments.filter(department => specificDepartments.includes(department.id));
|
|
56
48
|
}
|
|
57
|
-
const normalizedDepartments =
|
|
49
|
+
const normalizedDepartments = getNormalizedDepartments(targetDepartments);
|
|
58
50
|
_this.validDepartments = normalizedDepartments;
|
|
59
51
|
_this.setState({
|
|
60
52
|
departments: normalizedDepartments,
|
|
@@ -92,7 +84,7 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
92
84
|
const {
|
|
93
85
|
departments
|
|
94
86
|
} = this.state;
|
|
95
|
-
this.validDepartments =
|
|
87
|
+
this.validDepartments = searchDepartments(departments, newSearchValue);
|
|
96
88
|
this.setState({
|
|
97
89
|
searchVal: newSearchValue
|
|
98
90
|
});
|
|
@@ -141,24 +133,24 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
141
133
|
paddingLeft: "".concat(newLevel * 15 + 10, "px")
|
|
142
134
|
};
|
|
143
135
|
const isChecked = value === id;
|
|
144
|
-
return /*#__PURE__*/
|
|
136
|
+
return /*#__PURE__*/React.createElement(Fragment, {
|
|
145
137
|
key: id
|
|
146
|
-
}, /*#__PURE__*/
|
|
138
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
147
139
|
className: "dropdown-item department-item d-flex align-items-center",
|
|
148
140
|
onClick: event => this.onSelectDepartment(event, id),
|
|
149
141
|
style: itemStyle
|
|
150
|
-
}, /*#__PURE__*/
|
|
142
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
151
143
|
className: "department-item-left-content d-flex align-items-center"
|
|
152
|
-
}, hasChild && /*#__PURE__*/
|
|
144
|
+
}, hasChild && /*#__PURE__*/React.createElement("span", {
|
|
153
145
|
className: "dtable-font expand dtable-icon-".concat(isExpanded ? 'drop-down' : 'right-slide', " pr-1"),
|
|
154
146
|
onClick: event => this.onExpand(event, id, isExpanded)
|
|
155
|
-
}), /*#__PURE__*/
|
|
147
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
156
148
|
style: nameStyle,
|
|
157
149
|
title: name,
|
|
158
150
|
className: "text-truncate department-name"
|
|
159
|
-
}, name), isChecked && /*#__PURE__*/
|
|
151
|
+
}, name), isChecked && /*#__PURE__*/React.createElement("span", {
|
|
160
152
|
className: "department-check-icon"
|
|
161
|
-
}, /*#__PURE__*/
|
|
153
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
162
154
|
className: "dtable-font dtable-icon-check-mark"
|
|
163
155
|
})))), isExpanded && hasChild && this.renderSubDepartments(id, subDepartments, newLevel));
|
|
164
156
|
};
|
|
@@ -168,13 +160,13 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
168
160
|
} = this.state;
|
|
169
161
|
const topDepartment = departments.find(department => department.parent_id === -1);
|
|
170
162
|
const subDepartments = departments.filter(department => department.parent_id !== -1);
|
|
171
|
-
return /*#__PURE__*/
|
|
163
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, topDepartment ? this.renderDepartment(topDepartment, subDepartments, -1, true) : this.renderEmptyTip());
|
|
172
164
|
};
|
|
173
165
|
this.renderSpecificDepartments = () => {
|
|
174
166
|
const {
|
|
175
167
|
departments
|
|
176
168
|
} = this.state;
|
|
177
|
-
return /*#__PURE__*/
|
|
169
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, this.validDepartments.length === 0 && this.renderEmptyTip(), this.validDepartments.length > 0 && this.validDepartments.map(department => {
|
|
178
170
|
const value = {
|
|
179
171
|
...department,
|
|
180
172
|
hasChild: false
|
|
@@ -189,16 +181,16 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
189
181
|
} = this.state;
|
|
190
182
|
const nextLevelDepartment = this.validDepartments.find(department => topParentIds.includes(department.parent_id));
|
|
191
183
|
const hasNextLevel = !!nextLevelDepartment;
|
|
192
|
-
return /*#__PURE__*/
|
|
184
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, this.validDepartments.length === 0 && this.renderEmptyTip(), this.validDepartments.length > 0 && this.validDepartments.map(department => {
|
|
193
185
|
let value = department;
|
|
194
186
|
if (!topParentIds.includes(department.id)) return null;
|
|
195
187
|
return this.renderDepartment(value, departments, -1, hasNextLevel);
|
|
196
188
|
}));
|
|
197
189
|
};
|
|
198
190
|
this.renderEmptyTip = () => {
|
|
199
|
-
return /*#__PURE__*/
|
|
191
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
200
192
|
className: "none-search-result d-flex justify-content-center"
|
|
201
|
-
},
|
|
193
|
+
}, getLocale('No_departments_available'));
|
|
202
194
|
};
|
|
203
195
|
this.renderMenuContent = () => {
|
|
204
196
|
const {
|
|
@@ -212,12 +204,12 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
212
204
|
selectedRange
|
|
213
205
|
} = this.getSelectedRange();
|
|
214
206
|
let menuContent = this.renderAllDepartments();
|
|
215
|
-
if (enableSelectRange && [
|
|
207
|
+
if (enableSelectRange && [DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT, DEPARTMENT_SELECT_RANGE_MAP.SPECIFIC_DEPARTMENTS].includes(selectedRange) || searchVal) {
|
|
216
208
|
menuContent = this.renderSpecificDepartments();
|
|
217
|
-
} else if (enableSelectRange && selectedRange ===
|
|
209
|
+
} else if (enableSelectRange && selectedRange === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
218
210
|
menuContent = this.renderCurrentDepartmentsAndSub();
|
|
219
211
|
}
|
|
220
|
-
return /*#__PURE__*/
|
|
212
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
221
213
|
className: "editor-department-container",
|
|
222
214
|
ref: ref => this.departmentContainerRef = ref
|
|
223
215
|
}, !searchVal && renderUserDepartmentOptions && renderUserDepartmentOptions(this.onSelectDepartment), menuContent);
|
|
@@ -247,25 +239,25 @@ class DepartmentSingleSelect extends _react.Component {
|
|
|
247
239
|
}
|
|
248
240
|
}
|
|
249
241
|
render() {
|
|
250
|
-
return /*#__PURE__*/
|
|
242
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
251
243
|
className: "dropdown-menu department-editor-list dtable-ui show m-0 p-0",
|
|
252
244
|
style: this.props.menuStyle,
|
|
253
245
|
ref: ref => this.departmentsRef = ref,
|
|
254
246
|
onClick: this.onStopPropagation,
|
|
255
247
|
onMouseDown: this.onStopPropagation
|
|
256
|
-
}, /*#__PURE__*/
|
|
248
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
257
249
|
className: "search-departments"
|
|
258
|
-
}, /*#__PURE__*/
|
|
250
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
259
251
|
className: "form-control",
|
|
260
252
|
type: "text",
|
|
261
253
|
autoFocus: true,
|
|
262
|
-
placeholder:
|
|
254
|
+
placeholder: getLocale('Find_a_department'),
|
|
263
255
|
value: this.state.searchVal,
|
|
264
256
|
onChange: this.onChangeSearch,
|
|
265
257
|
onClick: this.onStopPropagation
|
|
266
|
-
})), this.state.isLoading ? /*#__PURE__*/
|
|
258
|
+
})), this.state.isLoading ? /*#__PURE__*/React.createElement("div", {
|
|
267
259
|
className: "mt-4"
|
|
268
|
-
}, /*#__PURE__*/
|
|
260
|
+
}, /*#__PURE__*/React.createElement(Loading, null)) : this.renderMenuContent());
|
|
269
261
|
}
|
|
270
262
|
}
|
|
271
|
-
|
|
263
|
+
export default DepartmentSingleSelect;
|