dtable-ui-component 6.0.42 → 6.0.44

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 (37) hide show
  1. package/lib/CheckboxEditor/mb-editor.js +4 -0
  2. package/lib/CheckboxEditor/pc-editor.js +4 -0
  3. package/lib/DTableCommonAddTool/index.js +1 -1
  4. package/lib/DTableCustomizeSelect/index.css +3 -3
  5. package/lib/DTableFiltersPopover/constants/index.js +30 -2
  6. package/lib/DTableFiltersPopover/index.css +54 -15
  7. package/lib/DTableFiltersPopover/index.js +117 -135
  8. package/lib/DTableFiltersPopover/utils/filter-item-utils.js +10 -4
  9. package/lib/DTableFiltersPopover/utils/index.js +354 -83
  10. package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.js +7 -5
  11. package/lib/DTableFiltersPopover/widgets/department-select-filter/department-multiple-select-filter.js +20 -7
  12. package/lib/DTableFiltersPopover/widgets/department-select-filter/department-single-select-filter.js +25 -6
  13. package/lib/DTableFiltersPopover/widgets/filter-calendar.js +1 -1
  14. package/lib/DTableFiltersPopover/widgets/filter-group.js +188 -0
  15. package/lib/DTableFiltersPopover/widgets/filter-item.js +193 -66
  16. package/lib/DTableFiltersPopover/widgets/filter-list/index.css +183 -74
  17. package/lib/DTableFiltersPopover/widgets/filter-list/index.js +232 -42
  18. package/lib/DTableGroupSelect/index.css +3 -3
  19. package/lib/DTableGroupSelect/select-option-group.css +5 -5
  20. package/lib/DTableSearchInput/index.js +2 -2
  21. package/lib/DepartmentMultipleSelectEditor/index.js +22 -4
  22. package/lib/DurationEditor/index.js +19 -4
  23. package/lib/GeolocationEditor/mb-editor/map-editor/index.js +29 -33
  24. package/lib/GeolocationEditor/pc-editor/map-editor/index.js +28 -27
  25. package/lib/GeolocationEditor/pc-editor/map-editor/large-editor/index.js +27 -26
  26. package/lib/NumberEditor/index.js +4 -2
  27. package/lib/SelectOptionGroup/index.css +13 -8
  28. package/lib/locales/de.json +5 -0
  29. package/lib/locales/en.json +5 -0
  30. package/lib/locales/es.json +5 -0
  31. package/lib/locales/fr.json +5 -0
  32. package/lib/locales/pt.json +5 -0
  33. package/lib/locales/ru.json +5 -0
  34. package/lib/locales/zh-CN.json +5 -0
  35. package/lib/utils/column-utils.js +21 -2
  36. package/package.json +4 -4
  37. package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.css +0 -0
@@ -11,14 +11,17 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _SelectedDepartments = _interopRequireDefault(require("../../../SelectedDepartments"));
12
12
  var _DepartmentSingleSelectEditor = _interopRequireDefault(require("../../../DepartmentSingleSelectEditor"));
13
13
  var _departments = require("../../../constants/departments");
14
+ var _ModalPortal = _interopRequireDefault(require("../../../ModalPortal"));
14
15
  var _commonHooks = require("../../../hooks/common-hooks");
15
16
  var _lang = require("../../../lang");
16
17
  function DepartmentSingleSelectFilter(props) {
17
18
  const {
18
19
  value,
19
20
  column,
21
+ isInModal,
22
+ userDepartmentIdsMap,
20
23
  departments,
21
- userDepartmentIdsMap
24
+ readOnly
22
25
  } = props;
23
26
  const [isShowSelector, setIsShowSelector] = (0, _react.useState)(false);
24
27
  const [selectedDepartment, setSelectedDepartment] = (0, _react.useState)(value || '');
@@ -52,6 +55,9 @@ function DepartmentSingleSelectFilter(props) {
52
55
  });
53
56
  }
54
57
  function onSelectToggle(event) {
58
+ if (readOnly) {
59
+ return;
60
+ }
55
61
  event.preventDefault();
56
62
  setIsShowSelector(!isShowSelector);
57
63
  }
@@ -77,20 +83,33 @@ function DepartmentSingleSelectFilter(props) {
77
83
  }, value ? /*#__PURE__*/_react.default.createElement("span", {
78
84
  className: "selected-option-show"
79
85
  }, /*#__PURE__*/_react.default.createElement(_SelectedDepartments.default, {
80
- value: selectedDepartmentIds,
81
- departments: departments
86
+ departments: departments,
87
+ value: selectedDepartmentIds
82
88
  })) : /*#__PURE__*/_react.default.createElement("span", {
83
89
  className: "select-placeholder"
84
- }, (0, _lang.getLocale)('Select_department')), /*#__PURE__*/_react.default.createElement("span", {
90
+ }, (0, _lang.getLocale)('Select_department')), !readOnly && /*#__PURE__*/_react.default.createElement("span", {
85
91
  className: "dtable-font dtable-icon-down3"
86
- })), isShowSelector && /*#__PURE__*/_react.default.createElement(_DepartmentSingleSelectEditor.default, {
92
+ })), isShowSelector && !isInModal && /*#__PURE__*/_react.default.createElement(_DepartmentSingleSelectEditor.default, {
93
+ target: selectorRef.current,
94
+ enableSelectRange: false,
95
+ isInModal: isInModal,
96
+ column: column,
97
+ value: value,
98
+ onCommit: onCommit,
99
+ userDepartmentIdsMap: userDepartmentIdsMap,
100
+ departments: departments,
101
+ renderUserDepartmentOptions: renderUserDepartmentOptions
102
+ }), isShowSelector && isInModal && /*#__PURE__*/_react.default.createElement(_ModalPortal.default, null, /*#__PURE__*/_react.default.createElement(_DepartmentSingleSelectEditor.default, {
103
+ target: selectorRef.current,
87
104
  enableSelectRange: false,
105
+ isInModal: isInModal,
88
106
  column: column,
89
107
  value: value,
108
+ position: selectorRef.current.getBoundingClientRect(),
90
109
  onCommit: onCommit,
91
110
  userDepartmentIdsMap: userDepartmentIdsMap,
92
111
  departments: departments,
93
112
  renderUserDepartmentOptions: renderUserDepartmentOptions
94
- }));
113
+ })));
95
114
  }
96
115
  var _default = exports.default = DepartmentSingleSelectFilter;
@@ -119,7 +119,7 @@ class FilterCalendar extends _react.Component {
119
119
  const calendarFormat = this.getCalendarFormat();
120
120
  const clearStyle = {
121
121
  position: 'absolute',
122
- top: '15px',
122
+ top: '8px',
123
123
  left: '225px',
124
124
  color: 'gray',
125
125
  fontSize: '12px'
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _dtableUtils = require("dtable-utils");
12
+ var _DTableCustomizeSelect = _interopRequireDefault(require("../../DTableCustomizeSelect"));
13
+ var _filterItem = _interopRequireDefault(require("./filter-item"));
14
+ var _filterItemUtils = _interopRequireDefault(require("../utils/filter-item-utils"));
15
+ var _constants = require("../constants");
16
+ var _utils = require("../utils");
17
+ var _DTableCommonAddTool = _interopRequireDefault(require("../../DTableCommonAddTool"));
18
+ var _lang = require("../../lang");
19
+ class FilterGroup extends _react.Component {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.onSelectGroupConjunction = conjunctionOption => {
23
+ const {
24
+ filterConjunction
25
+ } = this.props;
26
+ const {
27
+ filterConjunction: newConjunction
28
+ } = conjunctionOption;
29
+ if (newConjunction === filterConjunction) {
30
+ return;
31
+ }
32
+ this.props.modifyFilterConjunction(newConjunction);
33
+ };
34
+ this.deleteFilterGroup = event => {
35
+ event.nativeEvent.stopImmediatePropagation();
36
+ const {
37
+ index
38
+ } = this.props;
39
+ this.props.deleteFilterGroup(index);
40
+ };
41
+ this.modifyConjunctionInGroup = new_filter_conjunction => {
42
+ const {
43
+ index
44
+ } = this.props;
45
+ this.props.modifyConjunctionInGroup(index, new_filter_conjunction);
46
+ };
47
+ this.addFilterIntoGroup = () => {
48
+ const {
49
+ columns,
50
+ index
51
+ } = this.props;
52
+ const newFilter = (0, _utils.getDefaultFilter)(columns);
53
+ if (!newFilter) {
54
+ return;
55
+ }
56
+ this.props.addFilterIntoGroup(index, newFilter);
57
+ };
58
+ this.deleteFilterInGroup = filter_index => {
59
+ const {
60
+ index
61
+ } = this.props;
62
+ this.props.deleteFilterInGroup(index, filter_index);
63
+ };
64
+ this.updateFilterInGroup = (filter_index, new_filter) => {
65
+ const {
66
+ index
67
+ } = this.props;
68
+ this.props.updateFilterInGroup(index, filter_index, new_filter);
69
+ };
70
+ this.renderConjunction = () => {
71
+ const {
72
+ index,
73
+ filterConjunction,
74
+ conjunctionOptions
75
+ } = this.props;
76
+ switch (index) {
77
+ case 0:
78
+ {
79
+ return null;
80
+ }
81
+ case 1:
82
+ {
83
+ const activeConjunction = _filterItemUtils.default.getActiveConjunctionOption(filterConjunction, conjunctionOptions);
84
+ return /*#__PURE__*/_react.default.createElement(_DTableCustomizeSelect.default, {
85
+ value: activeConjunction,
86
+ options: conjunctionOptions,
87
+ onSelectOption: this.onSelectGroupConjunction
88
+ });
89
+ }
90
+ default:
91
+ {
92
+ return /*#__PURE__*/_react.default.createElement("span", {
93
+ className: "selected-conjunction-show"
94
+ }, (0, _lang.getLocale)(filterConjunction));
95
+ }
96
+ }
97
+ };
98
+ this.renderGroupFilters = () => {
99
+ const {
100
+ columns,
101
+ conjunctionOptions,
102
+ columnOptions,
103
+ filter,
104
+ index: groupIndex,
105
+ collaborators,
106
+ lang,
107
+ userDepartmentIdsMap,
108
+ departments,
109
+ firstDayOfWeek,
110
+ readOnly
111
+ } = this.props;
112
+ const {
113
+ filters: subFilters,
114
+ filter_conjunction
115
+ } = filter;
116
+ const subFilterConjunction = _constants.SUPPORT_CONJUNCTIONS.includes(filter_conjunction) ? filter_conjunction : _dtableUtils.FILTER_CONJUNCTION_TYPE.AND;
117
+ const subFiltersLength = Array.isArray(subFilters) ? subFilters.length : 0;
118
+ if (subFiltersLength === 0) {
119
+ return null;
120
+ }
121
+ return subFilters.map((currentFilter, subFilterIndex) => {
122
+ const {
123
+ column_key: sub_filter_column_key
124
+ } = currentFilter;
125
+ const {
126
+ error_message
127
+ } = _dtableUtils.ValidateFilter.validate(currentFilter, columns);
128
+ const filterColumn = columns.find(column => column.key === sub_filter_column_key) || {};
129
+ return /*#__PURE__*/_react.default.createElement(_filterItem.default, {
130
+ key: "filter-in-group-".concat(groupIndex, "-").concat(subFilterIndex),
131
+ isInModal: this.props.isInModal,
132
+ lang: lang,
133
+ index: subFilterIndex,
134
+ filter: currentFilter,
135
+ errMsg: error_message,
136
+ filterColumn: filterColumn,
137
+ filterConjunction: subFilterConjunction,
138
+ conjunctionOptions: conjunctionOptions,
139
+ filterColumnOptions: columnOptions,
140
+ collaborators: collaborators,
141
+ userDepartmentIdsMap: userDepartmentIdsMap,
142
+ departments: departments,
143
+ firstDayOfWeek: firstDayOfWeek,
144
+ readOnly: readOnly,
145
+ updateConjunction: this.modifyConjunctionInGroup,
146
+ deleteFilter: this.deleteFilterInGroup,
147
+ updateFilter: this.updateFilterInGroup
148
+ });
149
+ });
150
+ };
151
+ }
152
+ render() {
153
+ const {
154
+ level,
155
+ index,
156
+ readOnly
157
+ } = this.props;
158
+ return /*#__PURE__*/_react.default.createElement("div", {
159
+ className: (0, _classnames.default)('filter-item', 'filter-group', "level-".concat(level))
160
+ }, !readOnly && /*#__PURE__*/_react.default.createElement("div", {
161
+ className: "delete-filter",
162
+ onClick: this.deleteFilterGroup,
163
+ role: "button",
164
+ tabIndex: 0,
165
+ "aria-label": (0, _lang.getLocale)('Delete')
166
+ }, /*#__PURE__*/_react.default.createElement("i", {
167
+ "aria-hidden": "true",
168
+ className: "dtable-font dtable-icon-fork-number"
169
+ })), /*#__PURE__*/_react.default.createElement("div", {
170
+ className: "filter-group-wrapper"
171
+ }, /*#__PURE__*/_react.default.createElement("div", {
172
+ className: (0, _classnames.default)('filter-conjunction', {
173
+ 'conjunction-text': index > 1
174
+ })
175
+ }, this.renderConjunction()), /*#__PURE__*/_react.default.createElement("div", {
176
+ className: "filter-group-container"
177
+ }, this.renderGroupFilters(), !readOnly && /*#__PURE__*/_react.default.createElement(_DTableCommonAddTool.default, {
178
+ className: "group-filter-add-tool",
179
+ callBack: this.addFilterIntoGroup,
180
+ footerName: (0, _lang.getLocale)('Add_filter'),
181
+ addIconClassName: "popover-add-icon"
182
+ }))));
183
+ }
184
+ }
185
+ FilterGroup.defaultProps = {
186
+ level: 1
187
+ };
188
+ var _default = exports.default = FilterGroup;