dtable-utils 5.0.5-beta.3 → 5.0.5
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/README.md +2 -0
- package/dist/index.js +1 -1
- package/es/archive/sql-generator/filter-condition.js +19 -98
- package/es/color/column-color.js +2 -2
- package/es/color/row-color.js +2 -2
- package/es/common.js +1 -4
- package/es/filter/core.js +20 -129
- package/es/filter/filter-row.js +4 -20
- package/es/index.js +1 -1
- package/es/row/convert.js +1 -1
- package/lib/archive/sql-generator/filter-condition.js +17 -100
- package/lib/common.js +0 -4
- package/lib/filter/core.js +19 -132
- package/lib/filter/filter-row.js +3 -19
- package/lib/index.js +0 -2
- package/lib/row/convert.js +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
1
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
2
|
import dayjs from 'dayjs';
|
|
4
3
|
import utc from 'dayjs/plugin/utc';
|
|
5
4
|
import { ValidateFilter } from '../../validate/filter.js';
|
|
6
|
-
import { otherDate
|
|
5
|
+
import { otherDate } from '../../filter/core.js';
|
|
7
6
|
import { getTableColumnByKey } from '../../table/column.js';
|
|
8
7
|
import { FILTER_ERR_MSG } from '../../constants/filter/index.js';
|
|
9
8
|
import { CellType } from '../../constants/cell-type.js';
|
|
@@ -13,8 +12,6 @@ import PatchUtils from '../../helper/patch-utils.js';
|
|
|
13
12
|
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
14
13
|
import { FILTER_TERM_MODIFIER_TYPE } from '../../constants/filter/filter-modifier.js';
|
|
15
14
|
|
|
16
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
15
|
dayjs.extend(utc);
|
|
19
16
|
|
|
20
17
|
// TEXT | GEOLOCATION | EMAIL | AUTO_NUMBER
|
|
@@ -117,7 +114,7 @@ var dateSqlCondition = function dateSqlCondition(column, filterItem) {
|
|
|
117
114
|
filter_term = filterItem.filter_term,
|
|
118
115
|
filter_term_modifier = filterItem.filter_term_modifier;
|
|
119
116
|
var filterLabel = [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
120
|
-
if (
|
|
117
|
+
if (filter_term.length === 0 && filterLabel.indexOf(filter_predicate) < 0 && filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE) {
|
|
121
118
|
return '';
|
|
122
119
|
}
|
|
123
120
|
if (filter_predicate === FILTER_PREDICATE_TYPE.IS) {
|
|
@@ -176,7 +173,7 @@ var ctimeSqlCondition = function ctimeSqlCondition(column, filterItem) {
|
|
|
176
173
|
filter_term = filterItem.filter_term,
|
|
177
174
|
filter_term_modifier = filterItem.filter_term_modifier;
|
|
178
175
|
var filterLabel = [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
179
|
-
if (
|
|
176
|
+
if (filter_term.length === 0 && filterLabel.indexOf(filter_predicate) < 0 && filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE) {
|
|
180
177
|
return '';
|
|
181
178
|
}
|
|
182
179
|
|
|
@@ -695,103 +692,32 @@ var getSqlConditionByFilter = function getSqlConditionByFilter(column, filterIte
|
|
|
695
692
|
}
|
|
696
693
|
return '';
|
|
697
694
|
};
|
|
698
|
-
|
|
699
|
-
/**
|
|
700
|
-
* FilterGroup: {"filter_conjunction": "And", filters: [Filter, ...]}
|
|
701
|
-
* Filter: {"column_key": "xxx", filter_predicate: "xxx", ...}
|
|
702
|
-
* @param {array} filters
|
|
703
|
-
* @param {object} table
|
|
704
|
-
* @param {string} username
|
|
705
|
-
* @param {string} userId
|
|
706
|
-
* @param {object} userDepartmentIdsMap
|
|
707
|
-
* @returns string
|
|
708
|
-
*/
|
|
709
|
-
var getSqlConditionsByFilters = function getSqlConditionsByFilters(filters, table, username, userId, userDepartmentIdsMap) {
|
|
710
|
-
var columns = table.columns;
|
|
695
|
+
var filter2SqlCondition = function filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap) {
|
|
711
696
|
var patchedUsername = PatchUtils.getUsername(username);
|
|
712
697
|
var patchedUserId = PatchUtils.getUserId(userId);
|
|
713
698
|
var patchedUserDepartmentIdsMap = PatchUtils.getUserDepartmentIdsMap(userDepartmentIdsMap);
|
|
714
|
-
var sqlConditions = [];
|
|
715
|
-
filters.forEach(function (filter) {
|
|
716
|
-
if (checkIsFilterGroup(filter)) {
|
|
717
|
-
var subFilters = filter.filters,
|
|
718
|
-
sub_filter_conjunction = filter.filter_conjunction;
|
|
719
|
-
var subSqlConditions = subFilters.map(function (subFilter) {
|
|
720
|
-
var filterColumn = getTableColumnByKey(table, subFilter.column_key);
|
|
721
|
-
return getSqlConditionByFilter(filterColumn, subFilter, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap);
|
|
722
|
-
});
|
|
723
|
-
var subSqlConditionsLength = subSqlConditions.length;
|
|
724
|
-
if (subSqlConditionsLength > 0) {
|
|
725
|
-
var subSqlConditionsString = subSqlConditions.length === 1 ? subSqlConditions + '' : "(".concat(subSqlConditions.join(' ' + sub_filter_conjunction + ' '), ")");
|
|
726
|
-
sqlConditions.push(subSqlConditionsString);
|
|
727
|
-
}
|
|
728
|
-
} else {
|
|
729
|
-
var column_key = filter.column_key;
|
|
730
|
-
var filterColumn = columns.find(function (column) {
|
|
731
|
-
return column.key === column_key;
|
|
732
|
-
});
|
|
733
|
-
sqlConditions.push(getSqlConditionByFilter(filterColumn, filter, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap));
|
|
734
|
-
}
|
|
735
|
-
});
|
|
736
|
-
return sqlConditions;
|
|
737
|
-
};
|
|
738
|
-
var checkFilter = function checkFilter(filter, columns) {
|
|
739
|
-
var _ValidateFilter$valid = ValidateFilter.validate(filter, columns),
|
|
740
|
-
error_message = _ValidateFilter$valid.error_message;
|
|
741
|
-
if (error_message) {
|
|
742
|
-
if (error_message === FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
743
|
-
return false;
|
|
744
|
-
}
|
|
745
|
-
throw new Error(error_message);
|
|
746
|
-
}
|
|
747
|
-
return true;
|
|
748
|
-
};
|
|
749
|
-
var validateFilters = function validateFilters(filters, columns) {
|
|
750
|
-
var validFilters = [];
|
|
751
|
-
filters.forEach(function (filter) {
|
|
752
|
-
if (checkIsFilterGroup(filter)) {
|
|
753
|
-
var subFilters = filter.filters;
|
|
754
|
-
if (!Array.isArray(subFilters) || subFilters.length === 0) {
|
|
755
|
-
return;
|
|
756
|
-
}
|
|
757
|
-
var validSubFilters = subFilters.filter(function (subFilter) {
|
|
758
|
-
return checkFilter(subFilter, columns);
|
|
759
|
-
});
|
|
760
|
-
if (validSubFilters.length === 0) {
|
|
761
|
-
return;
|
|
762
|
-
}
|
|
763
|
-
validFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
764
|
-
filters: validSubFilters
|
|
765
|
-
}));
|
|
766
|
-
} else {
|
|
767
|
-
if (!checkFilter(filter, columns)) {
|
|
768
|
-
return;
|
|
769
|
-
}
|
|
770
|
-
validFilters.push(filter);
|
|
771
|
-
}
|
|
772
|
-
});
|
|
773
|
-
return validFilters;
|
|
774
|
-
};
|
|
775
|
-
var filter2SqlCondition = function filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap) {
|
|
776
699
|
var columns = table.columns;
|
|
777
700
|
var filter_conjunction = view.filter_conjunction,
|
|
778
701
|
filters = view.filters;
|
|
779
702
|
if (typeof filter_conjunction !== 'string' || !Array.isArray(filters) || filters.length === 0) {
|
|
780
703
|
return '';
|
|
781
704
|
}
|
|
782
|
-
var validFilters = [];
|
|
783
|
-
try {
|
|
784
|
-
validFilters = validateFilters(filters, columns);
|
|
785
|
-
} catch (err) {
|
|
786
|
-
throw new Error(err.message);
|
|
787
|
-
}
|
|
788
|
-
if (validFilters.length === 0) {
|
|
789
|
-
return '';
|
|
790
|
-
}
|
|
791
705
|
|
|
792
706
|
// 1. add WHERE condition
|
|
793
707
|
var filterHeader = 'WHERE ';
|
|
794
|
-
var stringList =
|
|
708
|
+
var stringList = filters.map(function (filterItem) {
|
|
709
|
+
var _ValidateFilter$valid = ValidateFilter.validate(filterItem, columns),
|
|
710
|
+
error_message = _ValidateFilter$valid.error_message;
|
|
711
|
+
if (error_message) {
|
|
712
|
+
if (error_message === FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
713
|
+
return '';
|
|
714
|
+
}
|
|
715
|
+
throw new Error(error_message);
|
|
716
|
+
}
|
|
717
|
+
var column_key = filterItem.column_key;
|
|
718
|
+
var column = getTableColumnByKey(table, column_key);
|
|
719
|
+
return getSqlConditionByFilter(column, filterItem, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap);
|
|
720
|
+
});
|
|
795
721
|
|
|
796
722
|
// 2. filtered '' sql clause
|
|
797
723
|
stringList = stringList.filter(function (item) {
|
|
@@ -803,14 +729,9 @@ var filter2SqlCondition = function filter2SqlCondition(table, view, username, us
|
|
|
803
729
|
// const filterContent = stringList.join(' ' + filter_conjunction + ' ');
|
|
804
730
|
var filterContent = stringList[0];
|
|
805
731
|
for (var i = 1; i < stringList.length; i++) {
|
|
806
|
-
|
|
807
|
-
if (currStr.startsWith('(') && currStr.endsWith(')')) {
|
|
808
|
-
filterContent += " ".concat(filter_conjunction, " ").concat(stringList[i]);
|
|
809
|
-
} else {
|
|
810
|
-
filterContent += " ".concat(filter_conjunction, " (").concat(stringList[i], ")");
|
|
811
|
-
}
|
|
732
|
+
filterContent += " ".concat(filter_conjunction, " (").concat(stringList[i], ")");
|
|
812
733
|
}
|
|
813
734
|
return filterHeader + filterContent;
|
|
814
735
|
};
|
|
815
736
|
|
|
816
|
-
export {
|
|
737
|
+
export { checkboxSqlCondition, collaboratorSqlCondition, creatorSqlCondition, ctimeSqlCondition, dateSqlCondition, departmentSingleSelectSqlCondition, fileSqlCondition, filter2SqlCondition, formulaSqlCondition, getSqlConditionByFilter, linkSqlCondition, longtextSqlCondition, multipleSelectSqlCondition, numberSqlCondition, singleSelectSqlCondition, textSqlCondition };
|
package/es/color/column-color.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import deepCopy from 'deep-copy';
|
|
3
3
|
import { deleteInvalidFilter, getFormattedFilters } from '../filter/core.js';
|
|
4
|
-
import { filterRows, filterRow
|
|
4
|
+
import { filterRows, filterRow } from '../filter/filter-row.js';
|
|
5
5
|
import { ValidateFilter } from '../validate/filter.js';
|
|
6
6
|
import { isNumberColumn } from '../column/number.js';
|
|
7
7
|
import { getRowsByIds } from '../table/row.js';
|
|
@@ -327,7 +327,7 @@ var getColumnColors = function getColumnColors(rows, view, table, value) {
|
|
|
327
327
|
var filter_conjunction = colorRule.filter_conjunction,
|
|
328
328
|
filters = colorRule.filters,
|
|
329
329
|
color = colorRule.color;
|
|
330
|
-
if (
|
|
330
|
+
if (filterRow(row, filter_conjunction, filters, {
|
|
331
331
|
formulaRow: formulaRow,
|
|
332
332
|
username: username,
|
|
333
333
|
userId: userId,
|
package/es/color/row-color.js
CHANGED
|
@@ -6,7 +6,7 @@ import { getColumnOptions } from '../column/option.js';
|
|
|
6
6
|
import { getGeolocationDisplayString } from '../cell-value-get/geolocation.js';
|
|
7
7
|
import { ValidateFilter } from '../validate/filter.js';
|
|
8
8
|
import { deleteInvalidFilter, getFormattedFilters } from '../filter/core.js';
|
|
9
|
-
import { filterRow
|
|
9
|
+
import { filterRow } from '../filter/filter-row.js';
|
|
10
10
|
import { ROW_COLOR_TYPE, ROW_COLOR_FOR_DUPLICATE_VALUES, SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES } from '../constants/row-color.js';
|
|
11
11
|
import { CellType } from '../constants/cell-type.js';
|
|
12
12
|
|
|
@@ -177,7 +177,7 @@ var getRowsColorByRules = function getRowsColorByRules(rows, view, table) {
|
|
|
177
177
|
var color = colorRule.color,
|
|
178
178
|
filter_conjunction = colorRule.filter_conjunction,
|
|
179
179
|
filters = colorRule.filters;
|
|
180
|
-
if (
|
|
180
|
+
if (filterRow(row, filter_conjunction, filters, {
|
|
181
181
|
formulaRow: formulaRow,
|
|
182
182
|
username: username,
|
|
183
183
|
userId: userId,
|
package/es/common.js
CHANGED
|
@@ -42,8 +42,5 @@ var isEmptyObject = function isEmptyObject(obj) {
|
|
|
42
42
|
}
|
|
43
43
|
return true;
|
|
44
44
|
};
|
|
45
|
-
var hasOwnProperty = function hasOwnProperty(obj, key) {
|
|
46
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
47
|
-
};
|
|
48
45
|
|
|
49
|
-
export { generatorBase64Code,
|
|
46
|
+
export { generatorBase64Code, isEmpty, isEmptyObject };
|
package/es/filter/core.js
CHANGED
|
@@ -3,32 +3,12 @@ import { ValidateFilter } from '../validate/filter.js';
|
|
|
3
3
|
import { DateUtils } from '../date.js';
|
|
4
4
|
import { FILTER_ERR_MSG } from '../constants/filter/index.js';
|
|
5
5
|
import { CellType } from '../constants/cell-type.js';
|
|
6
|
-
import { FORMULA_RESULT_TYPE
|
|
7
|
-
import { hasOwnProperty } from '../common.js';
|
|
6
|
+
import { FORMULA_RESULT_TYPE } from '../constants/formula.js';
|
|
8
7
|
import { FILTER_TERM_MODIFIER_TYPE } from '../constants/filter/filter-modifier.js';
|
|
9
8
|
|
|
10
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
10
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
11
|
var EXACT_DATE_TERM_MODIFIER_TYPES = [FILTER_TERM_MODIFIER_TYPE.TODAY, FILTER_TERM_MODIFIER_TYPE.TOMORROW, FILTER_TERM_MODIFIER_TYPE.YESTERDAY, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_AGO, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_AGO, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_AGO, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.EXACT_DATE];
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Check if is filter group
|
|
16
|
-
* @param {object} filter
|
|
17
|
-
* @returns bool
|
|
18
|
-
*/
|
|
19
|
-
var checkIsFilterGroup = function checkIsFilterGroup(filter) {
|
|
20
|
-
return hasOwnProperty(filter, 'filters');
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Check if is formula/link filter
|
|
25
|
-
* @param {object} filter
|
|
26
|
-
* @returns bool
|
|
27
|
-
*/
|
|
28
|
-
var checkIsFormulaFilter = function checkIsFormulaFilter(filter) {
|
|
29
|
-
var column = filter.column;
|
|
30
|
-
return FORMULA_COLUMN_TYPES_MAP[column.type] || column.type === CellType.LINK;
|
|
31
|
-
};
|
|
32
12
|
var isCurrentUserDepartment = function isCurrentUserDepartment(departmentId, userDepartmentIdsMap) {
|
|
33
13
|
var _ref = userDepartmentIdsMap || {},
|
|
34
14
|
current_user_department_ids = _ref.current_user_department_ids;
|
|
@@ -44,24 +24,9 @@ var isSpecificDepartment = function isSpecificDepartment(departmentId, filterTer
|
|
|
44
24
|
return filterTerm.includes(departmentId);
|
|
45
25
|
};
|
|
46
26
|
|
|
47
|
-
/**
|
|
48
|
-
* Check if the filter is available to display
|
|
49
|
-
* @param {object} filter
|
|
50
|
-
* @param {array} columns
|
|
51
|
-
* @returns bool
|
|
52
|
-
*/
|
|
53
|
-
var checkIsAvailableFilter = function checkIsAvailableFilter(filter, columns) {
|
|
54
|
-
var _ValidateFilter$valid = ValidateFilter.validate(filter, columns),
|
|
55
|
-
error_message = _ValidateFilter$valid.error_message;
|
|
56
|
-
if (error_message && error_message === FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
27
|
/**
|
|
63
28
|
* Get filters which excludes incomplete
|
|
64
|
-
* @param {array} filters e.g. [{ column_key, filter_predicate, ... }
|
|
29
|
+
* @param {array} filters e.g. [{ column_key, filter_predicate, ... }]
|
|
65
30
|
* @param {array} columns
|
|
66
31
|
* @returns valid filters, array
|
|
67
32
|
*/
|
|
@@ -69,24 +34,11 @@ var getValidFilters = function getValidFilters(filters, columns) {
|
|
|
69
34
|
if (!Array.isArray(filters) || !Array.isArray(columns)) {
|
|
70
35
|
return [];
|
|
71
36
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var availableSubFilters = [];
|
|
77
|
-
if (Array.isArray(subFilters) && subFilters.length > 0) {
|
|
78
|
-
availableSubFilters = subFilters.filter(function (subFilter) {
|
|
79
|
-
return checkIsAvailableFilter(subFilter, columns);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
availableFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
83
|
-
filters: availableSubFilters
|
|
84
|
-
}));
|
|
85
|
-
} else if (checkIsAvailableFilter(filter, columns)) {
|
|
86
|
-
availableFilters.push(filter);
|
|
87
|
-
}
|
|
37
|
+
return filters.filter(function (filter) {
|
|
38
|
+
var _ValidateFilter$valid = ValidateFilter.validate(filter, columns),
|
|
39
|
+
error_message = _ValidateFilter$valid.error_message;
|
|
40
|
+
return !error_message || error_message !== FILTER_ERR_MSG.INCOMPLETE_FILTER;
|
|
88
41
|
});
|
|
89
|
-
return availableFilters;
|
|
90
42
|
};
|
|
91
43
|
|
|
92
44
|
/**
|
|
@@ -348,37 +300,9 @@ var _getFormattedFilter = function getFormattedFilter(filter, column) {
|
|
|
348
300
|
*/
|
|
349
301
|
var getFormattedFilters = function getFormattedFilters(filters) {
|
|
350
302
|
return filters.map(function (filter) {
|
|
351
|
-
if (checkIsFilterGroup(filter)) {
|
|
352
|
-
var subFilters = filter.filters;
|
|
353
|
-
var formattedSubFilters = [];
|
|
354
|
-
if (Array.isArray(subFilters) && subFilters.length > 0) {
|
|
355
|
-
formattedSubFilters = subFilters.map(function (subFilter) {
|
|
356
|
-
return _getFormattedFilter(subFilter, subFilter.column);
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
return _objectSpread(_objectSpread({}, filter), {}, {
|
|
360
|
-
filters: formattedSubFilters
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
303
|
return _getFormattedFilter(filter, filter.column);
|
|
364
304
|
});
|
|
365
305
|
};
|
|
366
|
-
var checkFilter = function checkFilter(filter, columns) {
|
|
367
|
-
var _ValidateFilter$valid2 = ValidateFilter.validate(filter, columns),
|
|
368
|
-
error_message = _ValidateFilter$valid2.error_message;
|
|
369
|
-
if (error_message) {
|
|
370
|
-
if (error_message === FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
371
|
-
return null;
|
|
372
|
-
}
|
|
373
|
-
throw new Error(error_message);
|
|
374
|
-
}
|
|
375
|
-
var newFilter = _objectSpread({}, filter);
|
|
376
|
-
var column_key = filter.column_key;
|
|
377
|
-
newFilter.column = columns.find(function (column) {
|
|
378
|
-
return column.key === column_key;
|
|
379
|
-
});
|
|
380
|
-
return newFilter;
|
|
381
|
-
};
|
|
382
306
|
|
|
383
307
|
/**
|
|
384
308
|
* Get filters without error messages and formatted with filter column
|
|
@@ -392,57 +316,24 @@ var deleteInvalidFilter = function deleteInvalidFilter(filters, columns) {
|
|
|
392
316
|
}
|
|
393
317
|
var cleanFilters = [];
|
|
394
318
|
filters.forEach(function (filter) {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if (newSubFilter) {
|
|
402
|
-
cleanSubFilters.push(newSubFilter);
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
|
|
406
|
-
// just keep the filter group which has valid sub-filters
|
|
407
|
-
if (cleanSubFilters.length > 0) {
|
|
408
|
-
cleanFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
409
|
-
filters: cleanSubFilters
|
|
410
|
-
}));
|
|
411
|
-
}
|
|
319
|
+
var column_key = filter.column_key;
|
|
320
|
+
var _ValidateFilter$valid2 = ValidateFilter.validate(filter, columns),
|
|
321
|
+
error_message = _ValidateFilter$valid2.error_message;
|
|
322
|
+
if (error_message) {
|
|
323
|
+
if (error_message !== FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
324
|
+
throw new Error(error_message);
|
|
412
325
|
}
|
|
413
326
|
} else {
|
|
414
|
-
var
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
}
|
|
327
|
+
var filterColumn = columns.find(function (column) {
|
|
328
|
+
return column.key === column_key;
|
|
329
|
+
});
|
|
330
|
+
var newFilter = _objectSpread(_objectSpread({}, filter), {}, {
|
|
331
|
+
column: filterColumn
|
|
332
|
+
});
|
|
333
|
+
cleanFilters.push(newFilter);
|
|
418
334
|
}
|
|
419
335
|
});
|
|
420
336
|
return cleanFilters;
|
|
421
337
|
};
|
|
422
338
|
|
|
423
|
-
|
|
424
|
-
* Categorize filters
|
|
425
|
-
* @param {array} filters
|
|
426
|
-
* @returns {object} { generalFilters, formulaFilters, filterGroups }
|
|
427
|
-
*/
|
|
428
|
-
var getClassifiedFilters = function getClassifiedFilters(filters) {
|
|
429
|
-
var generalFilters = [];
|
|
430
|
-
var formulaFilters = [];
|
|
431
|
-
var filterGroups = [];
|
|
432
|
-
filters.forEach(function (filter) {
|
|
433
|
-
if (checkIsFilterGroup(filter)) {
|
|
434
|
-
filterGroups.push(filter);
|
|
435
|
-
} else if (checkIsFormulaFilter(filter)) {
|
|
436
|
-
formulaFilters.push(filter);
|
|
437
|
-
} else {
|
|
438
|
-
generalFilters.push(filter);
|
|
439
|
-
}
|
|
440
|
-
});
|
|
441
|
-
return {
|
|
442
|
-
generalFilters: generalFilters,
|
|
443
|
-
formulaFilters: formulaFilters,
|
|
444
|
-
filterGroups: filterGroups
|
|
445
|
-
};
|
|
446
|
-
};
|
|
447
|
-
|
|
448
|
-
export { checkIsAvailableFilter, checkIsFilterGroup, checkIsFormulaFilter, deleteInvalidFilter, getClassifiedFilters, _getFormattedFilter as getFormattedFilter, getFormattedFilterOtherDate, getFormattedFilters, getValidFilters, getValidFiltersWithoutError, isCurrentUserDepartment, isCurrentUserDepartmentAndSub, isSpecificDepartment, otherDate };
|
|
339
|
+
export { deleteInvalidFilter, _getFormattedFilter as getFormattedFilter, getFormattedFilterOtherDate, getFormattedFilters, getValidFilters, getValidFiltersWithoutError, isCurrentUserDepartment, isCurrentUserDepartmentAndSub, isSpecificDepartment, otherDate };
|
package/es/filter/filter-row.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getFormattedFilters, deleteInvalidFilter } from './core.js';
|
|
2
2
|
import { checkboxFilter } from './filter-column/checkbox.js';
|
|
3
3
|
import { collaboratorFilter } from './filter-column/collaborator.js';
|
|
4
4
|
import { creatorFilter } from './filter-column/creator.js';
|
|
@@ -137,7 +137,7 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
137
137
|
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
138
138
|
* @returns filter result, bool
|
|
139
139
|
*/
|
|
140
|
-
var
|
|
140
|
+
var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
141
141
|
var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
142
142
|
formulaRow = _ref2.formulaRow,
|
|
143
143
|
_ref2$username = _ref2.username,
|
|
@@ -147,14 +147,6 @@ var _filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
147
147
|
userDepartmentIdsMap = _ref2$userDepartmentI === void 0 ? {} : _ref2$userDepartmentI;
|
|
148
148
|
if (filterConjunction === FILTER_CONJUNCTION_TYPE.AND) {
|
|
149
149
|
return filters.every(function (filter) {
|
|
150
|
-
if (checkIsFilterGroup(filter)) {
|
|
151
|
-
return _filterRow(row, filter.filter_conjunction, filter.filters, {
|
|
152
|
-
formulaRow: formulaRow,
|
|
153
|
-
username: username,
|
|
154
|
-
userId: userId,
|
|
155
|
-
userDepartmentIdsMap: userDepartmentIdsMap
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
150
|
return getFilterResult(row, filter, {
|
|
159
151
|
formulaRow: formulaRow,
|
|
160
152
|
username: username,
|
|
@@ -165,14 +157,6 @@ var _filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
165
157
|
}
|
|
166
158
|
if (filterConjunction === FILTER_CONJUNCTION_TYPE.OR) {
|
|
167
159
|
return filters.some(function (filter) {
|
|
168
|
-
if (checkIsFilterGroup(filter)) {
|
|
169
|
-
return _filterRow(row, filter.filter_conjunction, filter.filters, {
|
|
170
|
-
formulaRow: formulaRow,
|
|
171
|
-
username: username,
|
|
172
|
-
userId: userId,
|
|
173
|
-
userDepartmentIdsMap: userDepartmentIdsMap
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
160
|
return getFilterResult(row, filter, {
|
|
177
161
|
formulaRow: formulaRow,
|
|
178
162
|
username: username,
|
|
@@ -205,7 +189,7 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
205
189
|
rows.forEach(function (row) {
|
|
206
190
|
var rowId = row._id;
|
|
207
191
|
var formulaRow = formulaRows ? formulaRows[rowId] : null;
|
|
208
|
-
if (
|
|
192
|
+
if (filterRow(row, filterConjunction, formattedFilters, {
|
|
209
193
|
formulaRow: formulaRow,
|
|
210
194
|
username: username,
|
|
211
195
|
userId: userId,
|
|
@@ -269,4 +253,4 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
269
253
|
};
|
|
270
254
|
};
|
|
271
255
|
|
|
272
|
-
export {
|
|
256
|
+
export { filterRow, filterRows, getFilteredRowsWithoutFormulaCalculation };
|
package/es/index.js
CHANGED
|
@@ -57,7 +57,7 @@ export { searchCollaborators } from './search.js';
|
|
|
57
57
|
export { ValidateFilter } from './validate/filter.js';
|
|
58
58
|
export { isValidEmail } from './validate/email.js';
|
|
59
59
|
export { isValidPosition } from './validate/geolocation.js';
|
|
60
|
-
export {
|
|
60
|
+
export { deleteInvalidFilter, getFormattedFilter, getFormattedFilterOtherDate, getFormattedFilters, getValidFilters, getValidFiltersWithoutError, otherDate } from './filter/core.js';
|
|
61
61
|
export { checkboxFilter } from './filter/filter-column/checkbox.js';
|
|
62
62
|
export { collaboratorFilter } from './filter/filter-column/collaborator.js';
|
|
63
63
|
export { creatorFilter } from './filter/filter-column/creator.js';
|
package/es/row/convert.js
CHANGED
|
@@ -106,7 +106,7 @@ var convertRow = function convertRow(row, value, table, view, formulaResults, co
|
|
|
106
106
|
}
|
|
107
107
|
case CellType.DATE:
|
|
108
108
|
{
|
|
109
|
-
var timeTextWithoutTimezone = cellValue.replace(/([+-]\d{2}:?\d{2})|Z$/g, '');
|
|
109
|
+
var timeTextWithoutTimezone = cellValue ? cellValue.replace(/([+-]\d{2}:?\d{2})|Z$/g, '') : '';
|
|
110
110
|
var format = column.data && column.data.format;
|
|
111
111
|
result[columnName] = formatTextToDate(timeTextWithoutTimezone, format);
|
|
112
112
|
break;
|