dtable-ui-component 6.0.38-alpha.2 → 6.0.39-alp41

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 (39) hide show
  1. package/lib/CheckboxEditor/index.css +7 -6
  2. package/lib/DTableFiltersPopover/constants/index.js +2 -30
  3. package/lib/DTableFiltersPopover/index.css +14 -50
  4. package/lib/DTableFiltersPopover/index.js +136 -118
  5. package/lib/DTableFiltersPopover/utils/filter-item-utils.js +4 -10
  6. package/lib/DTableFiltersPopover/utils/index.js +82 -358
  7. package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.css +0 -0
  8. package/lib/DTableFiltersPopover/widgets/collaborator-filter/index.js +4 -6
  9. package/lib/DTableFiltersPopover/widgets/department-select-filter/department-multiple-select-filter.js +2 -13
  10. package/lib/DTableFiltersPopover/widgets/department-select-filter/department-single-select-filter.js +6 -20
  11. package/lib/DTableFiltersPopover/widgets/filter-item.js +53 -138
  12. package/lib/DTableFiltersPopover/widgets/filter-list/index.css +10 -119
  13. package/lib/DTableFiltersPopover/widgets/filter-list/index.js +39 -226
  14. package/lib/DateEditor/mb-editor/index.js +2 -1
  15. package/lib/DateEditor/pc-editor.js +2 -1
  16. package/lib/DateFormatter/index.js +2 -2
  17. package/lib/GeolocationEditor/mb-editor/map-editor/index.css +5 -2
  18. package/lib/GeolocationEditor/mb-editor/map-editor/index.js +96 -51
  19. package/lib/GeolocationEditor/pc-editor/index.css +6 -15
  20. package/lib/GeolocationEditor/pc-editor/index.js +4 -1
  21. package/lib/GeolocationEditor/pc-editor/map-editor/index.css +33 -0
  22. package/lib/GeolocationEditor/pc-editor/map-editor/index.js +143 -99
  23. package/lib/GeolocationEditor/pc-editor/map-editor/large-editor/index.css +13 -11
  24. package/lib/GeolocationEditor/pc-editor/map-editor/large-editor/index.js +100 -70
  25. package/lib/GeolocationEditor/pc-editor/map-selection-editor/index.js +20 -11
  26. package/lib/GeolocationEditor/pc-editor/map-selection-editor/large-editor/index.js +2 -2
  27. package/lib/InputItem/custom-input.js +3 -1
  28. package/lib/RowExpandEditor/geolocation-editor/pc-editor/index.js +19 -5
  29. package/lib/locales/de.json +5 -3
  30. package/lib/locales/en.json +5 -8
  31. package/lib/locales/es.json +5 -3
  32. package/lib/locales/fr.json +5 -3
  33. package/lib/locales/pt.json +5 -3
  34. package/lib/locales/ru.json +5 -3
  35. package/lib/locales/zh-CN.json +5 -8
  36. package/lib/utils/column-utils.js +2 -21
  37. package/lib/utils/dateFormat.js +211 -0
  38. package/package.json +2 -2
  39. package/lib/DTableFiltersPopover/widgets/filter-group.js +0 -185
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.currentYear = exports.currentTime = exports.DATE_FORMATS = void 0;
8
+ exports.delimate = delimate;
9
+ exports.formatDateLocal = formatDateLocal;
10
+ exports.fullValidYear = fullValidYear;
11
+ exports.getDay = getDay;
12
+ exports.getMonth = getMonth;
13
+ exports.getYear = getYear;
14
+ exports.renderDisplayContent = renderDisplayContent;
15
+ exports.renderFilterInputFormat = renderFilterInputFormat;
16
+ var _dayjs = _interopRequireDefault(require("dayjs"));
17
+ var _utc = _interopRequireDefault(require("dayjs/plugin/utc"));
18
+ _dayjs.default.extend(_utc.default);
19
+ const currentTime = exports.currentTime = (0, _dayjs.default)().format('HH:mm');
20
+ const currentYear = exports.currentYear = (0, _dayjs.default)().year();
21
+ const DATE_FORMATS = exports.DATE_FORMATS = {
22
+ ISO: 'yyyy-mm-dd',
23
+ ISOAndTime: 'yyyy-mm-dd hh:mm',
24
+ US: 'm/d/yyyy',
25
+ USAndTime: 'm/d/yyyy hh:mm',
26
+ European: 'dd/mm/yyyy',
27
+ EuropeanAndTime: 'dd/mm/yyyy hh:mm',
28
+ Germany_Russia_etc: 'dd.mm.yyyy',
29
+ Germany_Russia_etcAndTime: 'dd.mm.yyyy hh:mm'
30
+ };
31
+ function fullValidYear(yearStr) {
32
+ const year = yearStr;
33
+ if (!year || isNaN(year)) return currentYear;
34
+ if (year.length === 2) {
35
+ if (Number(year) >= 0 && Number(year) < 69) {
36
+ return year ? "20".concat(year) : currentYear;
37
+ } else if (Number(year) >= 69 && Number(year) < 100) {
38
+ return year ? "19".concat(year) : currentYear;
39
+ }
40
+ }
41
+ if (year.length === 4) {
42
+ return year;
43
+ }
44
+ return year ? year.padStart(4, '0') : currentYear;
45
+ }
46
+ function formatDateLocal(formatStr, localeFormat) {
47
+ const str = formatStr || '';
48
+ const format = String(localeFormat).toLowerCase();
49
+ let cleanStr;
50
+ switch (format) {
51
+ case DATE_FORMATS.ISO:
52
+ case DATE_FORMATS.ISOAndTime:
53
+ cleanStr = str.replace(/[^0-9]+/g, '-');
54
+ return cleanStr.split('-').filter(Boolean).map(String);
55
+ case DATE_FORMATS.US:
56
+ case DATE_FORMATS.USAndTime:
57
+ case DATE_FORMATS.European:
58
+ case DATE_FORMATS.EuropeanAndTime:
59
+ cleanStr = str.replace(/[^0-9]+/g, '/');
60
+ return cleanStr.split('/').filter(Boolean).map(String);
61
+ case DATE_FORMATS.Germany_Russia_etc:
62
+ case DATE_FORMATS.Germany_Russia_etcAndTime:
63
+ cleanStr = str.replace(/[^0-9]+/g, '.');
64
+ return cleanStr.split('.').filter(Boolean).map(String);
65
+ default:
66
+ return [];
67
+ }
68
+ }
69
+ function delimate(localeFormat) {
70
+ const formatPrefix = String(localeFormat).toLowerCase();
71
+ let delimiter;
72
+ if (formatPrefix === DATE_FORMATS.Germany_Russia_etc || formatPrefix === DATE_FORMATS.Germany_Russia_etcAndTime) {
73
+ delimiter = '.';
74
+ } else if (formatPrefix === DATE_FORMATS.ISO || formatPrefix === DATE_FORMATS.ISOAndTime) {
75
+ delimiter = '-';
76
+ } else {
77
+ delimiter = '/';
78
+ }
79
+ return delimiter;
80
+ }
81
+ function renderDisplayContent(str, localeFormat, delimiter) {
82
+ const format = String(localeFormat).toLowerCase();
83
+ const parts = formatDateLocal(str, localeFormat);
84
+ if (parts.length < 3) {
85
+ return '';
86
+ }
87
+ let day = parts[2];
88
+ let month = parts[1];
89
+ let year = String(fullValidYear(parts[0])).padStart(4, '0');
90
+ let time = "".concat(parts[3], ":").concat(parts[4]) || currentTime;
91
+ if (format === DATE_FORMATS.ISO) {
92
+ return "".concat(year).concat(delimiter).concat(month).concat(delimiter).concat(day);
93
+ }
94
+ if (format === DATE_FORMATS.ISOAndTime) {
95
+ return "".concat(year).concat(delimiter).concat(month).concat(delimiter).concat(day, " ").concat(time);
96
+ }
97
+ if (format === DATE_FORMATS.US) {
98
+ return "".concat(Number(month)).concat(delimiter).concat(Number(day)).concat(delimiter).concat(year);
99
+ }
100
+ if (format === DATE_FORMATS.USAndTime) {
101
+ return "".concat(Number(month)).concat(delimiter).concat(Number(day)).concat(delimiter).concat(year, " ").concat(time);
102
+ }
103
+ if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
104
+ return "".concat(Number(day)).concat(delimiter).concat(Number(month)).concat(delimiter).concat(year);
105
+ }
106
+ if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
107
+ return "".concat(Number(day)).concat(delimiter).concat(Number(month)).concat(delimiter).concat(year, " ").concat(time);
108
+ }
109
+ }
110
+ function renderFilterInputFormat(str, localeFormat, delimiter) {
111
+ const format = String(localeFormat).toLowerCase();
112
+ const parts = formatDateLocal(str, localeFormat);
113
+ // console.log('parts', str, parts);
114
+ if (parts.length < 3) {
115
+ return '';
116
+ }
117
+ let day;
118
+ let month;
119
+ let year;
120
+ let time = "".concat(parts[3], ":").concat(parts[4]) || currentTime;
121
+ if (format === DATE_FORMATS.ISO) {
122
+ day = parts[2];
123
+ month = parts[1];
124
+ year = String(fullValidYear(parts[0])).padStart(4, '0');
125
+ return "".concat(year).concat(delimiter).concat(month).concat(delimiter).concat(day);
126
+ }
127
+ if (format === DATE_FORMATS.ISOAndTime) {
128
+ day = parts[2];
129
+ month = parts[1];
130
+ year = String(fullValidYear(parts[0])).padStart(4, '0');
131
+ return "".concat(year).concat(delimiter).concat(month).concat(delimiter).concat(day, " ").concat(time);
132
+ }
133
+ if (format === DATE_FORMATS.US) {
134
+ day = parts[1];
135
+ month = parts[0];
136
+ year = String(fullValidYear(parts[2])).padStart(4, '0');
137
+ return "".concat(Number(month)).concat(delimiter).concat(Number(day)).concat(delimiter).concat(year);
138
+ }
139
+ if (format === DATE_FORMATS.USAndTime) {
140
+ day = parts[1];
141
+ month = parts[0];
142
+ year = String(fullValidYear(parts[2])).padStart(4, '0');
143
+ return "".concat(Number(month)).concat(delimiter).concat(Number(day)).concat(delimiter).concat(year, " ").concat(time);
144
+ }
145
+ if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
146
+ day = parts[0];
147
+ month = parts[1];
148
+ year = String(fullValidYear(parts[2])).padStart(4, '0');
149
+ return "".concat(Number(day)).concat(delimiter).concat(Number(month)).concat(delimiter).concat(year);
150
+ }
151
+ if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
152
+ day = parts[0];
153
+ month = parts[1];
154
+ year = String(fullValidYear(parts[2])).padStart(4, '0');
155
+ return "".concat(Number(day)).concat(delimiter).concat(Number(month)).concat(delimiter).concat(year, " ").concat(time);
156
+ }
157
+ }
158
+ function getDay(str, localeFormat, mode) {
159
+ const format = String(localeFormat).toLowerCase();
160
+ const parts = formatDateLocal(str, format);
161
+ if (parts.length < 3) {
162
+ return '';
163
+ }
164
+ if (!mode) {
165
+ if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
166
+ return String(parts[2]).padStart(2, '0');
167
+ }
168
+ return String(Number(parts[2]));
169
+ }
170
+ if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
171
+ return String(parts[2]).padStart(2, '0');
172
+ }
173
+ if (format === DATE_FORMATS.US || format === DATE_FORMATS.USAndTime) {
174
+ return String(Number(parts[1]));
175
+ }
176
+ return String(Number(parts[0]));
177
+ }
178
+ function getMonth(str, localeFormat, mode) {
179
+ const format = String(localeFormat).toLowerCase();
180
+ const parts = formatDateLocal(str, format);
181
+ if (parts.length < 3) {
182
+ return '';
183
+ }
184
+ if (!mode) {
185
+ if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
186
+ return String(Number(parts[1]) - 1).padStart(2, '0');
187
+ }
188
+ return String(Number(parts[1]) - 1);
189
+ }
190
+ if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
191
+ return String(Number(parts[1]) - 1).padStart(2, '0');
192
+ }
193
+ if (format === DATE_FORMATS.US || format === DATE_FORMATS.USAndTime) {
194
+ return String(Number(parts[0]) - 1);
195
+ }
196
+ return String(Number(parts[1]) - 1);
197
+ }
198
+ function getYear(str, localeFormat, mode) {
199
+ const format = String(localeFormat).toLowerCase();
200
+ const parts = formatDateLocal(str, format);
201
+ if (parts.length < 3) {
202
+ return '';
203
+ }
204
+ if (!mode) {
205
+ return String(fullValidYear(parts[0])).padStart(4, '0');
206
+ }
207
+ if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
208
+ return String(fullValidYear(parts[0])).padStart(4, '0');
209
+ }
210
+ return String(fullValidYear(parts[2])).padStart(4, '0');
211
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-ui-component",
3
- "version": "6.0.38-alpha.2",
3
+ "version": "6.0.39-alp41",
4
4
  "main": "./lib/index.js",
5
5
  "dependencies": {
6
6
  "@seafile/react-image-lightbox": "4.0.2",
@@ -153,7 +153,7 @@
153
153
  "url-loader": "^4.1.1",
154
154
  "web-vitals": "2.1.4",
155
155
  "webpack": "^5.94.0",
156
- "webpack-dev-server": "^4.6.0",
156
+ "webpack-dev-server": "^5.2.2",
157
157
  "webpack-manifest-plugin": "^4.0.2",
158
158
  "workbox-webpack-plugin": "^6.4.1",
159
159
  "worker-loader": "3.0.8"
@@ -1,185 +0,0 @@
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
- } = this.props;
111
- const {
112
- filters: subFilters,
113
- filter_conjunction
114
- } = filter;
115
- const subFilterConjunction = _constants.SUPPORT_CONJUNCTIONS.includes(filter_conjunction) ? filter_conjunction : _dtableUtils.FILTER_CONJUNCTION_TYPE.AND;
116
- const subFiltersLength = Array.isArray(subFilters) ? subFilters.length : 0;
117
- if (subFiltersLength === 0) {
118
- return null;
119
- }
120
- return subFilters.map((currentFilter, subFilterIndex) => {
121
- const {
122
- column_key: sub_filter_column_key
123
- } = currentFilter;
124
- const {
125
- error_message
126
- } = _dtableUtils.ValidateFilter.validate(currentFilter, columns);
127
- const filterColumn = columns.find(column => column.key === sub_filter_column_key) || {};
128
- return /*#__PURE__*/_react.default.createElement(_filterItem.default, {
129
- key: "filter-in-group-".concat(groupIndex, "-").concat(subFilterIndex),
130
- isInModal: this.props.isInModal,
131
- lang: lang,
132
- index: subFilterIndex,
133
- filter: currentFilter,
134
- errorMessage: error_message,
135
- filterColumn: filterColumn,
136
- filterConjunction: subFilterConjunction,
137
- conjunctionOptions: conjunctionOptions,
138
- filterColumnOptions: columnOptions,
139
- collaborators: collaborators,
140
- userDepartmentIdsMap: userDepartmentIdsMap,
141
- departments: departments,
142
- firstDayOfWeek: firstDayOfWeek,
143
- updateConjunction: this.modifyConjunctionInGroup,
144
- deleteFilter: this.deleteFilterInGroup,
145
- updateFilter: this.updateFilterInGroup
146
- });
147
- });
148
- };
149
- }
150
- render() {
151
- const {
152
- level,
153
- index
154
- } = this.props;
155
- return /*#__PURE__*/_react.default.createElement("div", {
156
- className: (0, _classnames.default)('filter-item', 'filter-group', "level-".concat(level))
157
- }, /*#__PURE__*/_react.default.createElement("div", {
158
- className: "delete-filter",
159
- onClick: this.deleteFilterGroup,
160
- role: "button",
161
- tabIndex: 0,
162
- "aria-label": (0, _lang.getLocale)('Delete')
163
- }, /*#__PURE__*/_react.default.createElement("i", {
164
- "aria-hidden": "true",
165
- className: "dtable-font dtable-icon-fork-number"
166
- })), /*#__PURE__*/_react.default.createElement("div", {
167
- className: "filter-group-wrapper"
168
- }, /*#__PURE__*/_react.default.createElement("div", {
169
- className: (0, _classnames.default)('filter-conjunction', {
170
- 'conjunction-text': index > 1
171
- })
172
- }, this.renderConjunction()), /*#__PURE__*/_react.default.createElement("div", {
173
- className: "filter-group-container"
174
- }, this.renderGroupFilters(), /*#__PURE__*/_react.default.createElement(_DTableCommonAddTool.default, {
175
- className: "group-filter-add-tool",
176
- callBack: this.addFilterIntoGroup,
177
- footerName: (0, _lang.getLocale)('Add_filter'),
178
- addIconClassName: "popover-add-icon"
179
- }))));
180
- }
181
- }
182
- FilterGroup.defaultProps = {
183
- level: 1
184
- };
185
- var _default = exports.default = FilterGroup;