dtable-utils 4.2.1 → 4.2.3-beta.1
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/dist/index.js +1 -1
- package/es/cell-value-get/cell-value.js +12 -0
- package/es/cell-value-get/department.js +16 -0
- package/es/color/row-color.js +10 -5
- package/es/constants/cell-type.js +1 -0
- package/es/constants/column.js +12 -3
- package/es/constants/filter/filter-column-options.js +2 -0
- package/es/filter/filter-column/department-single-select.js +87 -0
- package/es/filter/filter-row.js +28 -10
- package/es/index.js +3 -2
- package/es/validate/filter.js +11 -1
- package/lib/cell-value-get/cell-value.js +12 -0
- package/lib/cell-value-get/department.js +20 -0
- package/lib/color/row-color.js +10 -5
- package/lib/constants/cell-type.js +1 -0
- package/lib/constants/column.js +12 -2
- package/lib/constants/filter/filter-column-options.js +2 -0
- package/lib/filter/filter-column/department-single-select.js +91 -0
- package/lib/filter/filter-row.js +28 -10
- package/lib/index.js +6 -3
- package/lib/validate/filter.js +10 -0
- package/package.json +1 -1
package/es/constants/column.js
CHANGED
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import { CellType } from './cell-type.js';
|
|
3
3
|
|
|
4
4
|
var _COLUMNS_ICON_CONFIG, _DURATION_DECIMAL_DIG, _DURATION_ZERO_DISPLA, _NOT_SUPPORT_EDIT_COL, _MULTIPLE_CELL_VALUE_, _SINGLE_CELL_VALUE_CO;
|
|
5
|
-
var COLUMNS_ICON_CONFIG = (_COLUMNS_ICON_CONFIG = {}, _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DEFAULT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.TEXT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.NUMBER, 'dtable-font dtable-icon-number'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CHECKBOX, 'dtable-font dtable-icon-check-square-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DATE, 'dtable-font dtable-icon-calendar-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.SINGLE_SELECT, 'dtable-font dtable-icon-single-election'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LONG_TEXT, 'dtable-font dtable-icon-long-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.IMAGE, 'dtable-font dtable-icon-picture'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FILE, 'dtable-font dtable-icon-file-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MULTIPLE_SELECT, 'dtable-font dtable-icon-multiple-selection'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.COLLABORATOR, 'dtable-font dtable-icon-collaborator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK, 'dtable-font dtable-icon-link-other-record'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FORMULA, 'dtable-font dtable-icon-formula'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK_FORMULA, 'dtable-font dtable-icon-link-formulas'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CREATOR, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LAST_MODIFIER, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.GEOLOCATION, 'dtable-font dtable-icon-location'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.AUTO_NUMBER, 'dtable-font dtable-icon-autonumber'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.URL, 'dtable-font dtable-icon-url'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.EMAIL, 'dtable-font dtable-icon-email'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DURATION, 'dtable-font dtable-icon-duration'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.BUTTON, 'dtable-font dtable-icon-button'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.RATE, 'dtable-font dtable-icon-rate'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DIGITAL_SIGN, 'dtable-font dtable-icon-handwritten-signature'), _COLUMNS_ICON_CONFIG);
|
|
5
|
+
var COLUMNS_ICON_CONFIG = (_COLUMNS_ICON_CONFIG = {}, _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DEFAULT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.TEXT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.NUMBER, 'dtable-font dtable-icon-number'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CHECKBOX, 'dtable-font dtable-icon-check-square-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DATE, 'dtable-font dtable-icon-calendar-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.SINGLE_SELECT, 'dtable-font dtable-icon-single-election'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LONG_TEXT, 'dtable-font dtable-icon-long-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.IMAGE, 'dtable-font dtable-icon-picture'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FILE, 'dtable-font dtable-icon-file-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MULTIPLE_SELECT, 'dtable-font dtable-icon-multiple-selection'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.COLLABORATOR, 'dtable-font dtable-icon-collaborator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK, 'dtable-font dtable-icon-link-other-record'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FORMULA, 'dtable-font dtable-icon-formula'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK_FORMULA, 'dtable-font dtable-icon-link-formulas'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CREATOR, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LAST_MODIFIER, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.GEOLOCATION, 'dtable-font dtable-icon-location'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.AUTO_NUMBER, 'dtable-font dtable-icon-autonumber'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.URL, 'dtable-font dtable-icon-url'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.EMAIL, 'dtable-font dtable-icon-email'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DURATION, 'dtable-font dtable-icon-duration'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.BUTTON, 'dtable-font dtable-icon-button'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.RATE, 'dtable-font dtable-icon-rate'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DIGITAL_SIGN, 'dtable-font dtable-icon-handwritten-signature'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DEPARTMENT_SINGLE_SELECT, 'dtable-font dtable-icon-department-single-selection'), _COLUMNS_ICON_CONFIG);
|
|
6
6
|
var COLUMN_OPTIONS = [{
|
|
7
7
|
iconName: 'Basic',
|
|
8
8
|
iconClass: '',
|
|
@@ -111,6 +111,10 @@ var COLUMN_OPTIONS = [{
|
|
|
111
111
|
iconName: 'Digital_signature',
|
|
112
112
|
iconClass: COLUMNS_ICON_CONFIG[CellType.DIGITAL_SIGN],
|
|
113
113
|
type: CellType.DIGITAL_SIGN
|
|
114
|
+
}, {
|
|
115
|
+
iconName: 'Department_single_select',
|
|
116
|
+
iconClass: COLUMNS_ICON_CONFIG[CellType.DEPARTMENT_SINGLE_SELECT],
|
|
117
|
+
type: CellType.DEPARTMENT_SINGLE_SELECT
|
|
114
118
|
}];
|
|
115
119
|
var DATE_COLUMN_OPTIONS = [CellType.DATE, CellType.CTIME, CellType.MTIME];
|
|
116
120
|
var NUMERIC_COLUMNS_TYPES = [CellType.NUMBER, CellType.DURATION, CellType.RATE];
|
|
@@ -156,15 +160,20 @@ var DURATION_ZERO_DISPLAY = (_DURATION_ZERO_DISPLA = {}, _defineProperty(_DURATI
|
|
|
156
160
|
|
|
157
161
|
// number
|
|
158
162
|
var DEFAULT_NUMBER_FORMAT = 'number';
|
|
163
|
+
var DEPARTMENT_SELECT_RANGE_MAP = {
|
|
164
|
+
CURRENT_USER_DEPARTMENT: 'current_user_department',
|
|
165
|
+
CURRENT_USER_DEPARTMENT_AND_SUB: 'current_user_department_and_sub',
|
|
166
|
+
SPECIFIC_DEPARTMENTS: 'specific_departments'
|
|
167
|
+
};
|
|
159
168
|
var DATE_DEFAULT_TYPES = {
|
|
160
169
|
SPECIFIC_DATE: 'specific_date',
|
|
161
170
|
CURRENT_DATE: 'current_date',
|
|
162
171
|
DAYS_BEFORE: 'days_before',
|
|
163
172
|
DAYS_AFTER: 'days_after'
|
|
164
173
|
};
|
|
165
|
-
var FILL_DEFAULT_VALUE_COLUMNS_TYPE = [CellType.TEXT, CellType.NUMBER, CellType.SINGLE_SELECT, CellType.RATE, CellType.CHECKBOX, CellType.LONG_TEXT, CellType.DATE, CellType.COLLABORATOR];
|
|
174
|
+
var FILL_DEFAULT_VALUE_COLUMNS_TYPE = [CellType.TEXT, CellType.NUMBER, CellType.SINGLE_SELECT, CellType.RATE, CellType.CHECKBOX, CellType.LONG_TEXT, CellType.DATE, CellType.COLLABORATOR, CellType.DEPARTMENT_SINGLE_SELECT];
|
|
166
175
|
var NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP = (_NOT_SUPPORT_EDIT_COL = {}, _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.CTIME, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.MTIME, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.CREATOR, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.LAST_MODIFIER, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.FORMULA, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.AUTO_NUMBER, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.BUTTON, true), _defineProperty(_NOT_SUPPORT_EDIT_COL, CellType.LINK_FORMULA, true), _NOT_SUPPORT_EDIT_COL);
|
|
167
176
|
var MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP = (_MULTIPLE_CELL_VALUE_ = {}, _defineProperty(_MULTIPLE_CELL_VALUE_, CellType.MULTIPLE_SELECT, true), _defineProperty(_MULTIPLE_CELL_VALUE_, CellType.COLLABORATOR, true), _defineProperty(_MULTIPLE_CELL_VALUE_, CellType.LINK, true), _MULTIPLE_CELL_VALUE_);
|
|
168
177
|
var SINGLE_CELL_VALUE_COLUMN_TYPE_MAP = (_SINGLE_CELL_VALUE_CO = {}, _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.TEXT, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.DATE, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.CTIME, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.MTIME, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.NUMBER, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.CHECKBOX, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.SINGLE_SELECT, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.CREATOR, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.GEOLOCATION, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.FORMULA, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.LINK_FORMULA, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.URL, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.EMAIL, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.DURATION, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.RATE, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.LAST_MODIFIER, true), _defineProperty(_SINGLE_CELL_VALUE_CO, CellType.DIGITAL_SIGN, true), _SINGLE_CELL_VALUE_CO);
|
|
169
178
|
|
|
170
|
-
export { COLLABORATOR_COLUMN_TYPES, COLUMNS_ICON_CONFIG, COLUMN_OPTIONS, DATE_COLUMN_OPTIONS, DATE_DEFAULT_TYPES, DATE_FORMAT_MAP, DATE_UNIT, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DURATION_DECIMAL_DIGITS, DURATION_FORMATS, DURATION_FORMATS_MAP, DURATION_ZERO_DISPLAY, FILL_DEFAULT_VALUE_COLUMNS_TYPE, MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP, NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP, NUMERIC_COLUMNS_TYPES, SINGLE_CELL_VALUE_COLUMN_TYPE_MAP, UTC_FORMAT_DEFAULT };
|
|
179
|
+
export { COLLABORATOR_COLUMN_TYPES, COLUMNS_ICON_CONFIG, COLUMN_OPTIONS, DATE_COLUMN_OPTIONS, DATE_DEFAULT_TYPES, DATE_FORMAT_MAP, DATE_UNIT, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DEPARTMENT_SELECT_RANGE_MAP, DURATION_DECIMAL_DIGITS, DURATION_FORMATS, DURATION_FORMATS_MAP, DURATION_ZERO_DISPLAY, FILL_DEFAULT_VALUE_COLUMNS_TYPE, MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP, NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP, NUMERIC_COLUMNS_TYPES, SINGLE_CELL_VALUE_COLUMN_TYPE_MAP, UTC_FORMAT_DEFAULT };
|
|
@@ -30,6 +30,8 @@ var FILTER_COLUMN_OPTIONS = (_FILTER_COLUMN_OPTION = {}, _defineProperty(_FILTER
|
|
|
30
30
|
filterPredicateList: [FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.IS_ANY_OF, FILTER_PREDICATE_TYPE.IS_NONE_OF, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
31
31
|
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.MULTIPLE_SELECT, {
|
|
32
32
|
filterPredicateList: [FILTER_PREDICATE_TYPE.HAS_ANY_OF, FILTER_PREDICATE_TYPE.HAS_ALL_OF, FILTER_PREDICATE_TYPE.HAS_NONE_OF, FILTER_PREDICATE_TYPE.IS_EXACTLY, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
33
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.DEPARTMENT_SINGLE_SELECT, {
|
|
34
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.IS_ANY_OF, FILTER_PREDICATE_TYPE.IS_NONE_OF, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
33
35
|
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.COLLABORATOR, {
|
|
34
36
|
filterPredicateList: [FILTER_PREDICATE_TYPE.HAS_ANY_OF, FILTER_PREDICATE_TYPE.HAS_ALL_OF, FILTER_PREDICATE_TYPE.HAS_NONE_OF, FILTER_PREDICATE_TYPE.IS_EXACTLY, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY, FILTER_PREDICATE_TYPE.INCLUDE_ME]
|
|
35
37
|
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.CREATOR, {
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { DEPARTMENT_SELECT_RANGE_MAP } from '../../constants/column.js';
|
|
2
|
+
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
3
|
+
|
|
4
|
+
var isCurrentUserDepartment = function isCurrentUserDepartment(id, userDepartmentIdsMap) {
|
|
5
|
+
var currentUserDepartmentIds = userDepartmentIdsMap && userDepartmentIdsMap.current_user_department_ids;
|
|
6
|
+
if (!Array.isArray(currentUserDepartmentIds)) return false;
|
|
7
|
+
return currentUserDepartmentIds.includes(id);
|
|
8
|
+
};
|
|
9
|
+
var isCurrentUserDepartmentAndSub = function isCurrentUserDepartmentAndSub(id, userDepartmentIdsMap) {
|
|
10
|
+
var currentUserDepartmentAndSubIds = userDepartmentIdsMap && userDepartmentIdsMap.current_user_department_and_sub_ids;
|
|
11
|
+
if (!Array.isArray(currentUserDepartmentAndSubIds)) return false;
|
|
12
|
+
return currentUserDepartmentAndSubIds.includes(id);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Filter department-single-select
|
|
17
|
+
* @param {number} departmentId
|
|
18
|
+
* @param {string} filter_predicate
|
|
19
|
+
* @param {number|array} filter_term department id or department ids
|
|
20
|
+
* @param {object} userDepartmentIdsMap
|
|
21
|
+
* @returns bool
|
|
22
|
+
*/
|
|
23
|
+
var departmentSingleSelectFilter = function departmentSingleSelectFilter(departmentId, _ref, userDepartmentIdsMap) {
|
|
24
|
+
var filter_predicate = _ref.filter_predicate,
|
|
25
|
+
filter_term = _ref.filter_term;
|
|
26
|
+
if (departmentId === 0) return false;
|
|
27
|
+
switch (filter_predicate) {
|
|
28
|
+
case FILTER_PREDICATE_TYPE.IS:
|
|
29
|
+
{
|
|
30
|
+
if (!filter_term) return true;
|
|
31
|
+
if (filter_term === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
|
|
32
|
+
return isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
|
|
33
|
+
}
|
|
34
|
+
if (filter_term === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
35
|
+
return isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
|
|
36
|
+
}
|
|
37
|
+
return departmentId === filter_term;
|
|
38
|
+
}
|
|
39
|
+
case FILTER_PREDICATE_TYPE.IS_NOT:
|
|
40
|
+
{
|
|
41
|
+
if (!filter_term) return true;
|
|
42
|
+
if (filter_term === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
|
|
43
|
+
return !isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
|
|
44
|
+
}
|
|
45
|
+
if (filter_term === DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
46
|
+
return !isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
|
|
47
|
+
}
|
|
48
|
+
return departmentId !== filter_term;
|
|
49
|
+
}
|
|
50
|
+
case FILTER_PREDICATE_TYPE.IS_ANY_OF:
|
|
51
|
+
{
|
|
52
|
+
if (filter_term.length === 0) return true;
|
|
53
|
+
if (filter_term.includes(DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
|
|
54
|
+
return isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) || filter_term.includes(departmentId);
|
|
55
|
+
}
|
|
56
|
+
if (filter_term.includes(DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
|
|
57
|
+
return isCurrentUserDepartment(departmentId, userDepartmentIdsMap) || filter_term.includes(departmentId);
|
|
58
|
+
}
|
|
59
|
+
return filter_term.includes(departmentId);
|
|
60
|
+
}
|
|
61
|
+
case FILTER_PREDICATE_TYPE.IS_NONE_OF:
|
|
62
|
+
{
|
|
63
|
+
if (filter_term.length === 0) return true;
|
|
64
|
+
if (filter_term.includes(DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
|
|
65
|
+
return !isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) && !filter_term.includes(departmentId);
|
|
66
|
+
}
|
|
67
|
+
if (filter_term.includes(DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
|
|
68
|
+
return !isCurrentUserDepartment(departmentId, userDepartmentIdsMap) && !filter_term.includes(departmentId);
|
|
69
|
+
}
|
|
70
|
+
return !filter_term.includes(departmentId);
|
|
71
|
+
}
|
|
72
|
+
case FILTER_PREDICATE_TYPE.EMPTY:
|
|
73
|
+
{
|
|
74
|
+
return !departmentId || typeof departmentId !== 'number';
|
|
75
|
+
}
|
|
76
|
+
case FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
77
|
+
{
|
|
78
|
+
return !!(departmentId && typeof departmentId === 'number');
|
|
79
|
+
}
|
|
80
|
+
default:
|
|
81
|
+
{
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { departmentSingleSelectFilter };
|
package/es/filter/filter-row.js
CHANGED
|
@@ -13,6 +13,7 @@ import { multipleSelectFilter } from './filter-column/multiple-select.js';
|
|
|
13
13
|
import { numberFilter } from './filter-column/number.js';
|
|
14
14
|
import { singleSelectFilter } from './filter-column/single-select.js';
|
|
15
15
|
import { linkFilter } from './filter-column/link.js';
|
|
16
|
+
import { departmentSingleSelectFilter } from './filter-column/department-single-select.js';
|
|
16
17
|
import { FILTER_CONJUNCTION_TYPE } from '../constants/filter/index.js';
|
|
17
18
|
import { DateUtils } from '../date.js';
|
|
18
19
|
import { CellType } from '../constants/cell-type.js';
|
|
@@ -21,7 +22,8 @@ import { DATE_FORMAT_MAP } from '../constants/column.js';
|
|
|
21
22
|
var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
22
23
|
var formulaRow = _ref.formulaRow,
|
|
23
24
|
username = _ref.username,
|
|
24
|
-
userId = _ref.userId
|
|
25
|
+
userId = _ref.userId,
|
|
26
|
+
userDepartmentIdsMap = _ref.userDepartmentIdsMap;
|
|
25
27
|
var column_key = filter.column_key,
|
|
26
28
|
column = filter.column;
|
|
27
29
|
var cellValue = row[column_key];
|
|
@@ -38,6 +40,10 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
38
40
|
{
|
|
39
41
|
return multipleSelectFilter(cellValue, filter);
|
|
40
42
|
}
|
|
43
|
+
case CellType.DEPARTMENT_SINGLE_SELECT:
|
|
44
|
+
{
|
|
45
|
+
return departmentSingleSelectFilter(cellValue, filter, userDepartmentIdsMap);
|
|
46
|
+
}
|
|
41
47
|
case CellType.DURATION:
|
|
42
48
|
case CellType.NUMBER:
|
|
43
49
|
case CellType.RATE:
|
|
@@ -122,6 +128,7 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
122
128
|
* @param {object} formulaRow
|
|
123
129
|
* @param {string} username
|
|
124
130
|
* @param {string} userId
|
|
131
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
125
132
|
* @returns filter result, bool
|
|
126
133
|
*/
|
|
127
134
|
var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
@@ -130,13 +137,16 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
130
137
|
formulaRow = _ref2$formulaRow === void 0 ? {} : _ref2$formulaRow,
|
|
131
138
|
_ref2$username = _ref2.username,
|
|
132
139
|
username = _ref2$username === void 0 ? '' : _ref2$username,
|
|
133
|
-
userId = _ref2.userId
|
|
140
|
+
userId = _ref2.userId,
|
|
141
|
+
_ref2$userDepartmentI = _ref2.userDepartmentIdsMap,
|
|
142
|
+
userDepartmentIdsMap = _ref2$userDepartmentI === void 0 ? {} : _ref2$userDepartmentI;
|
|
134
143
|
if (filterConjunction === FILTER_CONJUNCTION_TYPE.AND) {
|
|
135
144
|
return filters.every(function (filter) {
|
|
136
145
|
return getFilterResult(row, filter, {
|
|
137
146
|
formulaRow: formulaRow,
|
|
138
147
|
username: username,
|
|
139
|
-
userId: userId
|
|
148
|
+
userId: userId,
|
|
149
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
140
150
|
});
|
|
141
151
|
});
|
|
142
152
|
}
|
|
@@ -145,7 +155,8 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
145
155
|
return getFilterResult(row, filter, {
|
|
146
156
|
formulaRow: formulaRow,
|
|
147
157
|
username: username,
|
|
148
|
-
userId: userId
|
|
158
|
+
userId: userId,
|
|
159
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
149
160
|
});
|
|
150
161
|
});
|
|
151
162
|
}
|
|
@@ -159,13 +170,15 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
159
170
|
* @param {array} rows e.g. [{ _id, .... }, ...]
|
|
160
171
|
* @param {object} formulaRows
|
|
161
172
|
* @param {string} username
|
|
162
|
-
* @param {
|
|
173
|
+
* @param {string} userId
|
|
174
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
163
175
|
* @returns filtered rows ids, array
|
|
164
176
|
*/
|
|
165
177
|
var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
166
178
|
var formulaRows = _ref3.formulaRows,
|
|
167
179
|
username = _ref3.username,
|
|
168
|
-
userId = _ref3.userId
|
|
180
|
+
userId = _ref3.userId,
|
|
181
|
+
userDepartmentIdsMap = _ref3.userDepartmentIdsMap;
|
|
169
182
|
var filteredRows = [];
|
|
170
183
|
var formattedFilters = getFormattedFilters(filters);
|
|
171
184
|
rows.forEach(function (row) {
|
|
@@ -174,7 +187,8 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
174
187
|
if (filterRow(row, filterConjunction, formattedFilters, {
|
|
175
188
|
formulaRow: formulaRow,
|
|
176
189
|
username: username,
|
|
177
|
-
userId: userId
|
|
190
|
+
userId: userId,
|
|
191
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
178
192
|
})) {
|
|
179
193
|
filteredRows.push(rowId);
|
|
180
194
|
}
|
|
@@ -191,7 +205,8 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
191
205
|
* @param {object} table e.g. { columns, ... }
|
|
192
206
|
* @param {object} formulaRows
|
|
193
207
|
* @param {string} username
|
|
194
|
-
* @param {
|
|
208
|
+
* @param {string} userId
|
|
209
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
195
210
|
* @returns filtered rows: row_ids and error message: error_message, object
|
|
196
211
|
*/
|
|
197
212
|
var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFormulaCalculation(filterConjunction, filters, rows, table) {
|
|
@@ -201,7 +216,9 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
201
216
|
_ref4$username = _ref4.username,
|
|
202
217
|
username = _ref4$username === void 0 ? null : _ref4$username,
|
|
203
218
|
_ref4$userId = _ref4.userId,
|
|
204
|
-
userId = _ref4$userId === void 0 ? null : _ref4$userId
|
|
219
|
+
userId = _ref4$userId === void 0 ? null : _ref4$userId,
|
|
220
|
+
_ref4$userDepartmentI = _ref4.userDepartmentIdsMap,
|
|
221
|
+
userDepartmentIdsMap = _ref4$userDepartmentI === void 0 ? null : _ref4$userDepartmentI;
|
|
205
222
|
var columns = table.columns;
|
|
206
223
|
var validFilters = [];
|
|
207
224
|
try {
|
|
@@ -221,7 +238,8 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
221
238
|
filteredRows = filterRows(filterConjunction, validFilters, rows, {
|
|
222
239
|
formulaRows: formulaRows,
|
|
223
240
|
username: username,
|
|
224
|
-
userId: userId
|
|
241
|
+
userId: userId,
|
|
242
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
225
243
|
});
|
|
226
244
|
}
|
|
227
245
|
return {
|
package/es/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CellType } from './constants/cell-type.js';
|
|
2
|
-
export { COLLABORATOR_COLUMN_TYPES, COLUMNS_ICON_CONFIG, COLUMN_OPTIONS, DATE_COLUMN_OPTIONS, DATE_DEFAULT_TYPES, DATE_FORMAT_MAP, DATE_UNIT, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DURATION_DECIMAL_DIGITS, DURATION_FORMATS, DURATION_FORMATS_MAP, DURATION_ZERO_DISPLAY, FILL_DEFAULT_VALUE_COLUMNS_TYPE, MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP, NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP, NUMERIC_COLUMNS_TYPES, SINGLE_CELL_VALUE_COLUMN_TYPE_MAP, UTC_FORMAT_DEFAULT } from './constants/column.js';
|
|
2
|
+
export { COLLABORATOR_COLUMN_TYPES, COLUMNS_ICON_CONFIG, COLUMN_OPTIONS, DATE_COLUMN_OPTIONS, DATE_DEFAULT_TYPES, DATE_FORMAT_MAP, DATE_UNIT, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DEPARTMENT_SELECT_RANGE_MAP, DURATION_DECIMAL_DIGITS, DURATION_FORMATS, DURATION_FORMATS_MAP, DURATION_ZERO_DISPLAY, FILL_DEFAULT_VALUE_COLUMNS_TYPE, MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP, NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP, NUMERIC_COLUMNS_TYPES, SINGLE_CELL_VALUE_COLUMN_TYPE_MAP, UTC_FORMAT_DEFAULT } from './constants/column.js';
|
|
3
3
|
export { FILTER_CONJUNCTION_TYPE, FILTER_ERR_MSG } from './constants/filter/index.js';
|
|
4
4
|
export { DISPLAY_INTERNAL_ERRORS, FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE } from './constants/formula.js';
|
|
5
5
|
export { HIGHLIGHT_COLORS, SELECT_OPTION_COLORS } from './constants/select-option.js';
|
|
@@ -25,6 +25,7 @@ export { getNumberDisplayString, getPrecisionNumber, replaceNumberNotAllowInput
|
|
|
25
25
|
export { getColumnOptionNameById, getMultipleOptionName, getOption, getOptionName } from './cell-value-get/option.js';
|
|
26
26
|
export { getCollaborator, getCollaboratorsName, getCollaboratorsNames } from './cell-value-get/collaborator.js';
|
|
27
27
|
export { getGeolocationByGranularity, getGeolocationDisplayString } from './cell-value-get/geolocation.js';
|
|
28
|
+
export { getDepartmentName } from './cell-value-get/department.js';
|
|
28
29
|
export { getDigitalSignImageUrl } from './cell-value-get/digital-sign.js';
|
|
29
30
|
export { getLongtextDisplayString } from './cell-value-get/long-text.js';
|
|
30
31
|
export { getCellValueDisplayString, getCellValueStringResult, getFormulaDisplayString } from './cell-value-get/cell-value.js';
|
|
@@ -54,6 +55,7 @@ export { multipleSelectFilter } from './filter/filter-column/multiple-select.js'
|
|
|
54
55
|
export { numberFilter } from './filter/filter-column/number.js';
|
|
55
56
|
export { singleSelectFilter } from './filter/filter-column/single-select.js';
|
|
56
57
|
export { linkFilter } from './filter/filter-column/link.js';
|
|
58
|
+
export { FILTER_PREDICATE_SHOW, FILTER_PREDICATE_TYPE } from './constants/filter/filter-predicate.js';
|
|
57
59
|
export { filterRow, filterRows, getFilteredRowsWithoutFormulaCalculation } from './filter/filter-row.js';
|
|
58
60
|
export { deleteInvalidSort, getMultipleIndexesOrderbyOptions, getValidSorts, isValidSort } from './sort/core.js';
|
|
59
61
|
export { sortCheckbox } from './sort/sort-column/checkbox.js';
|
|
@@ -74,5 +76,4 @@ export { default as ColumnColorUtils } from './color/column-color.js';
|
|
|
74
76
|
export { default as RowColorUtils } from './color/row-color.js';
|
|
75
77
|
export { FILTER_COLUMN_OPTIONS } from './constants/filter/filter-column-options.js';
|
|
76
78
|
export { FILTER_TERM_MODIFIER_SHOW, FILTER_TERM_MODIFIER_TYPE } from './constants/filter/filter-modifier.js';
|
|
77
|
-
export { FILTER_PREDICATE_SHOW, FILTER_PREDICATE_TYPE } from './constants/filter/filter-predicate.js';
|
|
78
79
|
export { filterTermModifierIsWithin, filterTermModifierNotWithin } from './constants/filter/filter-is-within.js';
|
package/es/validate/filter.js
CHANGED
|
@@ -2,7 +2,7 @@ import _typeof from '@babel/runtime/helpers/typeof';
|
|
|
2
2
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import { CellType } from '../constants/cell-type.js';
|
|
5
|
-
import { COLLABORATOR_COLUMN_TYPES } from '../constants/column.js';
|
|
5
|
+
import { COLLABORATOR_COLUMN_TYPES, DEPARTMENT_SELECT_RANGE_MAP } from '../constants/column.js';
|
|
6
6
|
import { FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE } from '../constants/formula.js';
|
|
7
7
|
import { FILTER_ERR_MSG } from '../constants/filter/index.js';
|
|
8
8
|
import { getColumnOptions } from '../column/option.js';
|
|
@@ -344,6 +344,16 @@ var ValidateFilter = /*#__PURE__*/function () {
|
|
|
344
344
|
{
|
|
345
345
|
return this.isValidTermType(term, TERM_TYPE_MAP.ARRAY);
|
|
346
346
|
}
|
|
347
|
+
case CellType.DEPARTMENT_SINGLE_SELECT:
|
|
348
|
+
{
|
|
349
|
+
if (PREDICATES_REQUIRE_ARRAY_TERM.includes(predicate)) {
|
|
350
|
+
return this.isValidTermType(term, TERM_TYPE_MAP.ARRAY);
|
|
351
|
+
}
|
|
352
|
+
if ([DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT, DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB].includes(term)) {
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
return this.isValidTermType(term, TERM_TYPE_MAP.NUMBER);
|
|
356
|
+
}
|
|
347
357
|
case CellType.MULTIPLE_SELECT:
|
|
348
358
|
{
|
|
349
359
|
if (!this.isValidTermType(term, TERM_TYPE_MAP.ARRAY)) {
|
|
@@ -12,6 +12,7 @@ var geolocation = require('./geolocation.js');
|
|
|
12
12
|
var longText = require('./long-text.js');
|
|
13
13
|
var number = require('./number.js');
|
|
14
14
|
var option = require('./option.js');
|
|
15
|
+
var department = require('./department.js');
|
|
15
16
|
var cellType = require('../constants/cell-type.js');
|
|
16
17
|
var column = require('../constants/column.js');
|
|
17
18
|
var formula = require('../constants/formula.js');
|
|
@@ -137,6 +138,7 @@ var getFormulaDisplayString = function getFormulaDisplayString(cellValue, column
|
|
|
137
138
|
* @param {object} data column data
|
|
138
139
|
* @param {object} formulaRows formula results of rows. Default as "{}"
|
|
139
140
|
* @param {array} collaborators e.g. [{ email, name, ... }, ...]. Default as "[]"
|
|
141
|
+
* @param {array} departments e.g. [{ name, id }, ...]. Default as "[]"
|
|
140
142
|
* @param {bool} isBaiduMap Determine the way to connect latitude and longitude. Default as true
|
|
141
143
|
* @param {string} geolocationHyphen Used as a connector between province, city, district and detail. Default as empty string
|
|
142
144
|
* @returns formatted cell value, string|array
|
|
@@ -148,6 +150,8 @@ var getCellValueDisplayString = function getCellValueDisplayString(row, type, ke
|
|
|
148
150
|
formulaRows = _ref2$formulaRows === void 0 ? {} : _ref2$formulaRows,
|
|
149
151
|
_ref2$collaborators = _ref2.collaborators,
|
|
150
152
|
collaborators = _ref2$collaborators === void 0 ? [] : _ref2$collaborators,
|
|
153
|
+
_ref2$departments = _ref2.departments,
|
|
154
|
+
departments = _ref2$departments === void 0 ? [] : _ref2$departments,
|
|
151
155
|
_ref2$isBaiduMap = _ref2.isBaiduMap,
|
|
152
156
|
isBaiduMap = _ref2$isBaiduMap === void 0 ? true : _ref2$isBaiduMap,
|
|
153
157
|
_ref2$geolocationHyph = _ref2.geolocationHyphen,
|
|
@@ -202,6 +206,10 @@ var getCellValueDisplayString = function getCellValueDisplayString(row, type, ke
|
|
|
202
206
|
{
|
|
203
207
|
return collaborator.getCollaboratorsName(collaborators, cellValue);
|
|
204
208
|
}
|
|
209
|
+
case cellType.CellType.DEPARTMENT_SINGLE_SELECT:
|
|
210
|
+
{
|
|
211
|
+
return department.getDepartmentName(departments, cellValue);
|
|
212
|
+
}
|
|
205
213
|
case cellType.CellType.CREATOR:
|
|
206
214
|
case cellType.CellType.LAST_MODIFIER:
|
|
207
215
|
{
|
|
@@ -320,6 +328,10 @@ var getCellValueStringResult = function getCellValueStringResult(row, column$1)
|
|
|
320
328
|
{
|
|
321
329
|
return collaborator.getCollaboratorsName(collaborators, cellValue);
|
|
322
330
|
}
|
|
331
|
+
case cellType.CellType.DEPARTMENT_SINGLE_SELECT:
|
|
332
|
+
{
|
|
333
|
+
return department.getDepartmentName(departments, cellValue);
|
|
334
|
+
}
|
|
323
335
|
case cellType.CellType.CREATOR:
|
|
324
336
|
case cellType.CellType.LAST_MODIFIER:
|
|
325
337
|
{
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get concatenated department name of given department's id.
|
|
7
|
+
* @param {array} departments e.g. [{ name: 'xxx', id: 'xxx' }, ...]
|
|
8
|
+
* @param {array} id e.g. '8'
|
|
9
|
+
* @returns concatenated department name, string. e.g. '部门1'
|
|
10
|
+
*/
|
|
11
|
+
var getDepartmentName = function getDepartmentName(departments, id) {
|
|
12
|
+
if (!id || !departments || departments.length === 0) return '';
|
|
13
|
+
var department = departments.find(function (department) {
|
|
14
|
+
return department.id === id;
|
|
15
|
+
});
|
|
16
|
+
if (!department) return '';
|
|
17
|
+
return department.name || '';
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.getDepartmentName = getDepartmentName;
|
package/lib/color/row-color.js
CHANGED
|
@@ -150,7 +150,8 @@ var getRowsColorBySingleSelectColumn = function getRowsColorBySingleSelectColumn
|
|
|
150
150
|
var getRowsColorByRules = function getRowsColorByRules(rows, view, table) {
|
|
151
151
|
var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
152
152
|
username = _ref2.username,
|
|
153
|
-
userId = _ref2.userId
|
|
153
|
+
userId = _ref2.userId,
|
|
154
|
+
userDepartmentIdsMap = _ref2.userDepartmentIdsMap;
|
|
154
155
|
var formula_rows = view.formula_rows,
|
|
155
156
|
colorbys = view.colorbys;
|
|
156
157
|
var _ref3 = colorbys || {},
|
|
@@ -186,7 +187,8 @@ var getRowsColorByRules = function getRowsColorByRules(rows, view, table) {
|
|
|
186
187
|
if (filterRow.filterRow(row, filter_conjunction, filters, {
|
|
187
188
|
formulaRow: formulaRow,
|
|
188
189
|
username: username,
|
|
189
|
-
userId: userId
|
|
190
|
+
userId: userId,
|
|
191
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
190
192
|
})) {
|
|
191
193
|
colors[rowId] = color;
|
|
192
194
|
break;
|
|
@@ -239,13 +241,15 @@ var getRowsColorByDuplicateValues = function getRowsColorByDuplicateValues(rows,
|
|
|
239
241
|
* @param {object} table e.g. { id_row_map, ... }
|
|
240
242
|
* @param {object} value e.g. { tables, collaborators, ... }
|
|
241
243
|
* @param {string} username
|
|
242
|
-
* @param {
|
|
244
|
+
* @param {string} userId
|
|
245
|
+
* @param {object} userDepartmentIdsMap
|
|
243
246
|
* @returns rows color, object
|
|
244
247
|
*/
|
|
245
248
|
var getRowsColor = function getRowsColor(rows, view, table, value) {
|
|
246
249
|
var _ref5 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
|
|
247
250
|
username = _ref5.username,
|
|
248
|
-
userId = _ref5.userId
|
|
251
|
+
userId = _ref5.userId,
|
|
252
|
+
userDepartmentIdsMap = _ref5.userDepartmentIdsMap;
|
|
249
253
|
var colorbys = view.colorbys;
|
|
250
254
|
if (!colorbys) return {};
|
|
251
255
|
var tableRows = core$1.isTableRows(rows) ? rows : row.getRowsByIds(table, rows);
|
|
@@ -264,7 +268,8 @@ var getRowsColor = function getRowsColor(rows, view, table, value) {
|
|
|
264
268
|
return {
|
|
265
269
|
colors: getRowsColorByRules(tableRows, view, table, {
|
|
266
270
|
username: username,
|
|
267
|
-
userId: userId
|
|
271
|
+
userId: userId,
|
|
272
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
268
273
|
})
|
|
269
274
|
};
|
|
270
275
|
}
|
package/lib/constants/column.js
CHANGED
|
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
10
10
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
11
11
|
|
|
12
12
|
var _COLUMNS_ICON_CONFIG, _DURATION_DECIMAL_DIG, _DURATION_ZERO_DISPLA, _NOT_SUPPORT_EDIT_COL, _MULTIPLE_CELL_VALUE_, _SINGLE_CELL_VALUE_CO;
|
|
13
|
-
var COLUMNS_ICON_CONFIG = (_COLUMNS_ICON_CONFIG = {}, _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DEFAULT, 'dtable-font dtable-icon-single-line-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.TEXT, 'dtable-font dtable-icon-single-line-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.NUMBER, 'dtable-font dtable-icon-number'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CHECKBOX, 'dtable-font dtable-icon-check-square-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DATE, 'dtable-font dtable-icon-calendar-alt-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.SINGLE_SELECT, 'dtable-font dtable-icon-single-election'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LONG_TEXT, 'dtable-font dtable-icon-long-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.IMAGE, 'dtable-font dtable-icon-picture'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.FILE, 'dtable-font dtable-icon-file-alt-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.MULTIPLE_SELECT, 'dtable-font dtable-icon-multiple-selection'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.COLLABORATOR, 'dtable-font dtable-icon-collaborator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LINK, 'dtable-font dtable-icon-link-other-record'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.FORMULA, 'dtable-font dtable-icon-formula'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LINK_FORMULA, 'dtable-font dtable-icon-link-formulas'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CREATOR, 'dtable-font dtable-icon-creator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LAST_MODIFIER, 'dtable-font dtable-icon-creator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.MTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.GEOLOCATION, 'dtable-font dtable-icon-location'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.AUTO_NUMBER, 'dtable-font dtable-icon-autonumber'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.URL, 'dtable-font dtable-icon-url'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.EMAIL, 'dtable-font dtable-icon-email'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DURATION, 'dtable-font dtable-icon-duration'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.BUTTON, 'dtable-font dtable-icon-button'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.RATE, 'dtable-font dtable-icon-rate'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DIGITAL_SIGN, 'dtable-font dtable-icon-handwritten-signature'), _COLUMNS_ICON_CONFIG);
|
|
13
|
+
var COLUMNS_ICON_CONFIG = (_COLUMNS_ICON_CONFIG = {}, _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DEFAULT, 'dtable-font dtable-icon-single-line-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.TEXT, 'dtable-font dtable-icon-single-line-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.NUMBER, 'dtable-font dtable-icon-number'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CHECKBOX, 'dtable-font dtable-icon-check-square-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DATE, 'dtable-font dtable-icon-calendar-alt-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.SINGLE_SELECT, 'dtable-font dtable-icon-single-election'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LONG_TEXT, 'dtable-font dtable-icon-long-text'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.IMAGE, 'dtable-font dtable-icon-picture'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.FILE, 'dtable-font dtable-icon-file-alt-solid'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.MULTIPLE_SELECT, 'dtable-font dtable-icon-multiple-selection'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.COLLABORATOR, 'dtable-font dtable-icon-collaborator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LINK, 'dtable-font dtable-icon-link-other-record'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.FORMULA, 'dtable-font dtable-icon-formula'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LINK_FORMULA, 'dtable-font dtable-icon-link-formulas'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CREATOR, 'dtable-font dtable-icon-creator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.CTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.LAST_MODIFIER, 'dtable-font dtable-icon-creator'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.MTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.GEOLOCATION, 'dtable-font dtable-icon-location'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.AUTO_NUMBER, 'dtable-font dtable-icon-autonumber'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.URL, 'dtable-font dtable-icon-url'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.EMAIL, 'dtable-font dtable-icon-email'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DURATION, 'dtable-font dtable-icon-duration'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.BUTTON, 'dtable-font dtable-icon-button'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.RATE, 'dtable-font dtable-icon-rate'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DIGITAL_SIGN, 'dtable-font dtable-icon-handwritten-signature'), _defineProperty__default["default"](_COLUMNS_ICON_CONFIG, cellType.CellType.DEPARTMENT_SINGLE_SELECT, 'dtable-font dtable-icon-department-single-selection'), _COLUMNS_ICON_CONFIG);
|
|
14
14
|
var COLUMN_OPTIONS = [{
|
|
15
15
|
iconName: 'Basic',
|
|
16
16
|
iconClass: '',
|
|
@@ -119,6 +119,10 @@ var COLUMN_OPTIONS = [{
|
|
|
119
119
|
iconName: 'Digital_signature',
|
|
120
120
|
iconClass: COLUMNS_ICON_CONFIG[cellType.CellType.DIGITAL_SIGN],
|
|
121
121
|
type: cellType.CellType.DIGITAL_SIGN
|
|
122
|
+
}, {
|
|
123
|
+
iconName: 'Department_single_select',
|
|
124
|
+
iconClass: COLUMNS_ICON_CONFIG[cellType.CellType.DEPARTMENT_SINGLE_SELECT],
|
|
125
|
+
type: cellType.CellType.DEPARTMENT_SINGLE_SELECT
|
|
122
126
|
}];
|
|
123
127
|
var DATE_COLUMN_OPTIONS = [cellType.CellType.DATE, cellType.CellType.CTIME, cellType.CellType.MTIME];
|
|
124
128
|
var NUMERIC_COLUMNS_TYPES = [cellType.CellType.NUMBER, cellType.CellType.DURATION, cellType.CellType.RATE];
|
|
@@ -164,13 +168,18 @@ var DURATION_ZERO_DISPLAY = (_DURATION_ZERO_DISPLA = {}, _defineProperty__defaul
|
|
|
164
168
|
|
|
165
169
|
// number
|
|
166
170
|
var DEFAULT_NUMBER_FORMAT = 'number';
|
|
171
|
+
var DEPARTMENT_SELECT_RANGE_MAP = {
|
|
172
|
+
CURRENT_USER_DEPARTMENT: 'current_user_department',
|
|
173
|
+
CURRENT_USER_DEPARTMENT_AND_SUB: 'current_user_department_and_sub',
|
|
174
|
+
SPECIFIC_DEPARTMENTS: 'specific_departments'
|
|
175
|
+
};
|
|
167
176
|
var DATE_DEFAULT_TYPES = {
|
|
168
177
|
SPECIFIC_DATE: 'specific_date',
|
|
169
178
|
CURRENT_DATE: 'current_date',
|
|
170
179
|
DAYS_BEFORE: 'days_before',
|
|
171
180
|
DAYS_AFTER: 'days_after'
|
|
172
181
|
};
|
|
173
|
-
var FILL_DEFAULT_VALUE_COLUMNS_TYPE = [cellType.CellType.TEXT, cellType.CellType.NUMBER, cellType.CellType.SINGLE_SELECT, cellType.CellType.RATE, cellType.CellType.CHECKBOX, cellType.CellType.LONG_TEXT, cellType.CellType.DATE, cellType.CellType.COLLABORATOR];
|
|
182
|
+
var FILL_DEFAULT_VALUE_COLUMNS_TYPE = [cellType.CellType.TEXT, cellType.CellType.NUMBER, cellType.CellType.SINGLE_SELECT, cellType.CellType.RATE, cellType.CellType.CHECKBOX, cellType.CellType.LONG_TEXT, cellType.CellType.DATE, cellType.CellType.COLLABORATOR, cellType.CellType.DEPARTMENT_SINGLE_SELECT];
|
|
174
183
|
var NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP = (_NOT_SUPPORT_EDIT_COL = {}, _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.CTIME, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.MTIME, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.CREATOR, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.LAST_MODIFIER, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.FORMULA, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.AUTO_NUMBER, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.BUTTON, true), _defineProperty__default["default"](_NOT_SUPPORT_EDIT_COL, cellType.CellType.LINK_FORMULA, true), _NOT_SUPPORT_EDIT_COL);
|
|
175
184
|
var MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP = (_MULTIPLE_CELL_VALUE_ = {}, _defineProperty__default["default"](_MULTIPLE_CELL_VALUE_, cellType.CellType.MULTIPLE_SELECT, true), _defineProperty__default["default"](_MULTIPLE_CELL_VALUE_, cellType.CellType.COLLABORATOR, true), _defineProperty__default["default"](_MULTIPLE_CELL_VALUE_, cellType.CellType.LINK, true), _MULTIPLE_CELL_VALUE_);
|
|
176
185
|
var SINGLE_CELL_VALUE_COLUMN_TYPE_MAP = (_SINGLE_CELL_VALUE_CO = {}, _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.TEXT, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.DATE, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.CTIME, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.MTIME, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.NUMBER, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.CHECKBOX, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.SINGLE_SELECT, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.CREATOR, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.GEOLOCATION, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.FORMULA, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.LINK_FORMULA, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.URL, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.EMAIL, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.DURATION, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.RATE, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.LAST_MODIFIER, true), _defineProperty__default["default"](_SINGLE_CELL_VALUE_CO, cellType.CellType.DIGITAL_SIGN, true), _SINGLE_CELL_VALUE_CO);
|
|
@@ -184,6 +193,7 @@ exports.DATE_FORMAT_MAP = DATE_FORMAT_MAP;
|
|
|
184
193
|
exports.DATE_UNIT = DATE_UNIT;
|
|
185
194
|
exports.DEFAULT_DATE_FORMAT = DEFAULT_DATE_FORMAT;
|
|
186
195
|
exports.DEFAULT_NUMBER_FORMAT = DEFAULT_NUMBER_FORMAT;
|
|
196
|
+
exports.DEPARTMENT_SELECT_RANGE_MAP = DEPARTMENT_SELECT_RANGE_MAP;
|
|
187
197
|
exports.DURATION_DECIMAL_DIGITS = DURATION_DECIMAL_DIGITS;
|
|
188
198
|
exports.DURATION_FORMATS = DURATION_FORMATS;
|
|
189
199
|
exports.DURATION_FORMATS_MAP = DURATION_FORMATS_MAP;
|
|
@@ -38,6 +38,8 @@ var FILTER_COLUMN_OPTIONS = (_FILTER_COLUMN_OPTION = {}, _defineProperty__defaul
|
|
|
38
38
|
filterPredicateList: [filterPredicate.FILTER_PREDICATE_TYPE.IS, filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT, filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF, filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF, filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
39
39
|
}), _defineProperty__default["default"](_FILTER_COLUMN_OPTION, cellType.CellType.MULTIPLE_SELECT, {
|
|
40
40
|
filterPredicateList: [filterPredicate.FILTER_PREDICATE_TYPE.HAS_ANY_OF, filterPredicate.FILTER_PREDICATE_TYPE.HAS_ALL_OF, filterPredicate.FILTER_PREDICATE_TYPE.HAS_NONE_OF, filterPredicate.FILTER_PREDICATE_TYPE.IS_EXACTLY, filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
41
|
+
}), _defineProperty__default["default"](_FILTER_COLUMN_OPTION, cellType.CellType.DEPARTMENT_SINGLE_SELECT, {
|
|
42
|
+
filterPredicateList: [filterPredicate.FILTER_PREDICATE_TYPE.IS, filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT, filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF, filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF, filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
41
43
|
}), _defineProperty__default["default"](_FILTER_COLUMN_OPTION, cellType.CellType.COLLABORATOR, {
|
|
42
44
|
filterPredicateList: [filterPredicate.FILTER_PREDICATE_TYPE.HAS_ANY_OF, filterPredicate.FILTER_PREDICATE_TYPE.HAS_ALL_OF, filterPredicate.FILTER_PREDICATE_TYPE.HAS_NONE_OF, filterPredicate.FILTER_PREDICATE_TYPE.IS_EXACTLY, filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.INCLUDE_ME]
|
|
43
45
|
}), _defineProperty__default["default"](_FILTER_COLUMN_OPTION, cellType.CellType.CREATOR, {
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var column = require('../../constants/column.js');
|
|
6
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
7
|
+
|
|
8
|
+
var isCurrentUserDepartment = function isCurrentUserDepartment(id, userDepartmentIdsMap) {
|
|
9
|
+
var currentUserDepartmentIds = userDepartmentIdsMap && userDepartmentIdsMap.current_user_department_ids;
|
|
10
|
+
if (!Array.isArray(currentUserDepartmentIds)) return false;
|
|
11
|
+
return currentUserDepartmentIds.includes(id);
|
|
12
|
+
};
|
|
13
|
+
var isCurrentUserDepartmentAndSub = function isCurrentUserDepartmentAndSub(id, userDepartmentIdsMap) {
|
|
14
|
+
var currentUserDepartmentAndSubIds = userDepartmentIdsMap && userDepartmentIdsMap.current_user_department_and_sub_ids;
|
|
15
|
+
if (!Array.isArray(currentUserDepartmentAndSubIds)) return false;
|
|
16
|
+
return currentUserDepartmentAndSubIds.includes(id);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Filter department-single-select
|
|
21
|
+
* @param {number} departmentId
|
|
22
|
+
* @param {string} filter_predicate
|
|
23
|
+
* @param {number|array} filter_term department id or department ids
|
|
24
|
+
* @param {object} userDepartmentIdsMap
|
|
25
|
+
* @returns bool
|
|
26
|
+
*/
|
|
27
|
+
var departmentSingleSelectFilter = function departmentSingleSelectFilter(departmentId, _ref, userDepartmentIdsMap) {
|
|
28
|
+
var filter_predicate = _ref.filter_predicate,
|
|
29
|
+
filter_term = _ref.filter_term;
|
|
30
|
+
if (departmentId === 0) return false;
|
|
31
|
+
switch (filter_predicate) {
|
|
32
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
33
|
+
{
|
|
34
|
+
if (!filter_term) return true;
|
|
35
|
+
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
|
|
36
|
+
return isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
|
|
37
|
+
}
|
|
38
|
+
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
39
|
+
return isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
|
|
40
|
+
}
|
|
41
|
+
return departmentId === filter_term;
|
|
42
|
+
}
|
|
43
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
44
|
+
{
|
|
45
|
+
if (!filter_term) return true;
|
|
46
|
+
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT) {
|
|
47
|
+
return !isCurrentUserDepartment(departmentId, userDepartmentIdsMap);
|
|
48
|
+
}
|
|
49
|
+
if (filter_term === column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB) {
|
|
50
|
+
return !isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap);
|
|
51
|
+
}
|
|
52
|
+
return departmentId !== filter_term;
|
|
53
|
+
}
|
|
54
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF:
|
|
55
|
+
{
|
|
56
|
+
if (filter_term.length === 0) return true;
|
|
57
|
+
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
|
|
58
|
+
return isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) || filter_term.includes(departmentId);
|
|
59
|
+
}
|
|
60
|
+
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
|
|
61
|
+
return isCurrentUserDepartment(departmentId, userDepartmentIdsMap) || filter_term.includes(departmentId);
|
|
62
|
+
}
|
|
63
|
+
return filter_term.includes(departmentId);
|
|
64
|
+
}
|
|
65
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF:
|
|
66
|
+
{
|
|
67
|
+
if (filter_term.length === 0) return true;
|
|
68
|
+
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB)) {
|
|
69
|
+
return !isCurrentUserDepartmentAndSub(departmentId, userDepartmentIdsMap) && !filter_term.includes(departmentId);
|
|
70
|
+
}
|
|
71
|
+
if (filter_term.includes(column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT)) {
|
|
72
|
+
return !isCurrentUserDepartment(departmentId, userDepartmentIdsMap) && !filter_term.includes(departmentId);
|
|
73
|
+
}
|
|
74
|
+
return !filter_term.includes(departmentId);
|
|
75
|
+
}
|
|
76
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
77
|
+
{
|
|
78
|
+
return !departmentId || typeof departmentId !== 'number';
|
|
79
|
+
}
|
|
80
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
81
|
+
{
|
|
82
|
+
return !!(departmentId && typeof departmentId === 'number');
|
|
83
|
+
}
|
|
84
|
+
default:
|
|
85
|
+
{
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
exports.departmentSingleSelectFilter = departmentSingleSelectFilter;
|