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
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
5
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
7
6
|
var dayjs = require('dayjs');
|
|
8
7
|
var utc = require('dayjs/plugin/utc');
|
|
@@ -19,13 +18,10 @@ var filterModifier = require('../../constants/filter/filter-modifier.js');
|
|
|
19
18
|
|
|
20
19
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
20
|
|
|
22
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
23
21
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
24
22
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
25
23
|
var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
|
|
26
24
|
|
|
27
|
-
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; }
|
|
28
|
-
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__default["default"](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; }
|
|
29
25
|
dayjs__default["default"].extend(utc__default["default"]);
|
|
30
26
|
|
|
31
27
|
// TEXT | GEOLOCATION | EMAIL | AUTO_NUMBER
|
|
@@ -128,7 +124,7 @@ var dateSqlCondition = function dateSqlCondition(column, filterItem) {
|
|
|
128
124
|
filter_term = filterItem.filter_term,
|
|
129
125
|
filter_term_modifier = filterItem.filter_term_modifier;
|
|
130
126
|
var filterLabel = [filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
131
|
-
if (
|
|
127
|
+
if (filter_term.length === 0 && filterLabel.indexOf(filter_predicate) < 0 && filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE) {
|
|
132
128
|
return '';
|
|
133
129
|
}
|
|
134
130
|
if (filter_predicate === filterPredicate.FILTER_PREDICATE_TYPE.IS) {
|
|
@@ -187,7 +183,7 @@ var ctimeSqlCondition = function ctimeSqlCondition(column, filterItem) {
|
|
|
187
183
|
filter_term = filterItem.filter_term,
|
|
188
184
|
filter_term_modifier = filterItem.filter_term_modifier;
|
|
189
185
|
var filterLabel = [filterPredicate.FILTER_PREDICATE_TYPE.EMPTY, filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
190
|
-
if (
|
|
186
|
+
if (filter_term.length === 0 && filterLabel.indexOf(filter_predicate) < 0 && filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE) {
|
|
191
187
|
return '';
|
|
192
188
|
}
|
|
193
189
|
|
|
@@ -706,103 +702,32 @@ var getSqlConditionByFilter = function getSqlConditionByFilter(column, filterIte
|
|
|
706
702
|
}
|
|
707
703
|
return '';
|
|
708
704
|
};
|
|
709
|
-
|
|
710
|
-
/**
|
|
711
|
-
* FilterGroup: {"filter_conjunction": "And", filters: [Filter, ...]}
|
|
712
|
-
* Filter: {"column_key": "xxx", filter_predicate: "xxx", ...}
|
|
713
|
-
* @param {array} filters
|
|
714
|
-
* @param {object} table
|
|
715
|
-
* @param {string} username
|
|
716
|
-
* @param {string} userId
|
|
717
|
-
* @param {object} userDepartmentIdsMap
|
|
718
|
-
* @returns string
|
|
719
|
-
*/
|
|
720
|
-
var getSqlConditionsByFilters = function getSqlConditionsByFilters(filters, table, username, userId, userDepartmentIdsMap) {
|
|
721
|
-
var columns = table.columns;
|
|
705
|
+
var filter2SqlCondition = function filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap) {
|
|
722
706
|
var patchedUsername = patchUtils["default"].getUsername(username);
|
|
723
707
|
var patchedUserId = patchUtils["default"].getUserId(userId);
|
|
724
708
|
var patchedUserDepartmentIdsMap = patchUtils["default"].getUserDepartmentIdsMap(userDepartmentIdsMap);
|
|
725
|
-
var sqlConditions = [];
|
|
726
|
-
filters.forEach(function (filter) {
|
|
727
|
-
if (core.checkIsFilterGroup(filter)) {
|
|
728
|
-
var subFilters = filter.filters,
|
|
729
|
-
sub_filter_conjunction = filter.filter_conjunction;
|
|
730
|
-
var subSqlConditions = subFilters.map(function (subFilter) {
|
|
731
|
-
var filterColumn = column$1.getTableColumnByKey(table, subFilter.column_key);
|
|
732
|
-
return getSqlConditionByFilter(filterColumn, subFilter, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap);
|
|
733
|
-
});
|
|
734
|
-
var subSqlConditionsLength = subSqlConditions.length;
|
|
735
|
-
if (subSqlConditionsLength > 0) {
|
|
736
|
-
var subSqlConditionsString = subSqlConditions.length === 1 ? subSqlConditions + '' : "(".concat(subSqlConditions.join(' ' + sub_filter_conjunction + ' '), ")");
|
|
737
|
-
sqlConditions.push(subSqlConditionsString);
|
|
738
|
-
}
|
|
739
|
-
} else {
|
|
740
|
-
var column_key = filter.column_key;
|
|
741
|
-
var filterColumn = columns.find(function (column) {
|
|
742
|
-
return column.key === column_key;
|
|
743
|
-
});
|
|
744
|
-
sqlConditions.push(getSqlConditionByFilter(filterColumn, filter, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap));
|
|
745
|
-
}
|
|
746
|
-
});
|
|
747
|
-
return sqlConditions;
|
|
748
|
-
};
|
|
749
|
-
var checkFilter = function checkFilter(filter$1, columns) {
|
|
750
|
-
var _ValidateFilter$valid = filter.ValidateFilter.validate(filter$1, columns),
|
|
751
|
-
error_message = _ValidateFilter$valid.error_message;
|
|
752
|
-
if (error_message) {
|
|
753
|
-
if (error_message === index.FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
754
|
-
return false;
|
|
755
|
-
}
|
|
756
|
-
throw new Error(error_message);
|
|
757
|
-
}
|
|
758
|
-
return true;
|
|
759
|
-
};
|
|
760
|
-
var validateFilters = function validateFilters(filters, columns) {
|
|
761
|
-
var validFilters = [];
|
|
762
|
-
filters.forEach(function (filter) {
|
|
763
|
-
if (core.checkIsFilterGroup(filter)) {
|
|
764
|
-
var subFilters = filter.filters;
|
|
765
|
-
if (!Array.isArray(subFilters) || subFilters.length === 0) {
|
|
766
|
-
return;
|
|
767
|
-
}
|
|
768
|
-
var validSubFilters = subFilters.filter(function (subFilter) {
|
|
769
|
-
return checkFilter(subFilter, columns);
|
|
770
|
-
});
|
|
771
|
-
if (validSubFilters.length === 0) {
|
|
772
|
-
return;
|
|
773
|
-
}
|
|
774
|
-
validFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
775
|
-
filters: validSubFilters
|
|
776
|
-
}));
|
|
777
|
-
} else {
|
|
778
|
-
if (!checkFilter(filter, columns)) {
|
|
779
|
-
return;
|
|
780
|
-
}
|
|
781
|
-
validFilters.push(filter);
|
|
782
|
-
}
|
|
783
|
-
});
|
|
784
|
-
return validFilters;
|
|
785
|
-
};
|
|
786
|
-
var filter2SqlCondition = function filter2SqlCondition(table, view, username, userId, userDepartmentIdsMap) {
|
|
787
709
|
var columns = table.columns;
|
|
788
710
|
var filter_conjunction = view.filter_conjunction,
|
|
789
711
|
filters = view.filters;
|
|
790
712
|
if (typeof filter_conjunction !== 'string' || !Array.isArray(filters) || filters.length === 0) {
|
|
791
713
|
return '';
|
|
792
714
|
}
|
|
793
|
-
var validFilters = [];
|
|
794
|
-
try {
|
|
795
|
-
validFilters = validateFilters(filters, columns);
|
|
796
|
-
} catch (err) {
|
|
797
|
-
throw new Error(err.message);
|
|
798
|
-
}
|
|
799
|
-
if (validFilters.length === 0) {
|
|
800
|
-
return '';
|
|
801
|
-
}
|
|
802
715
|
|
|
803
716
|
// 1. add WHERE condition
|
|
804
717
|
var filterHeader = 'WHERE ';
|
|
805
|
-
var stringList =
|
|
718
|
+
var stringList = filters.map(function (filterItem) {
|
|
719
|
+
var _ValidateFilter$valid = filter.ValidateFilter.validate(filterItem, columns),
|
|
720
|
+
error_message = _ValidateFilter$valid.error_message;
|
|
721
|
+
if (error_message) {
|
|
722
|
+
if (error_message === index.FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
723
|
+
return '';
|
|
724
|
+
}
|
|
725
|
+
throw new Error(error_message);
|
|
726
|
+
}
|
|
727
|
+
var column_key = filterItem.column_key;
|
|
728
|
+
var column = column$1.getTableColumnByKey(table, column_key);
|
|
729
|
+
return getSqlConditionByFilter(column, filterItem, patchedUsername, patchedUserId, patchedUserDepartmentIdsMap);
|
|
730
|
+
});
|
|
806
731
|
|
|
807
732
|
// 2. filtered '' sql clause
|
|
808
733
|
stringList = stringList.filter(function (item) {
|
|
@@ -814,29 +739,21 @@ var filter2SqlCondition = function filter2SqlCondition(table, view, username, us
|
|
|
814
739
|
// const filterContent = stringList.join(' ' + filter_conjunction + ' ');
|
|
815
740
|
var filterContent = stringList[0];
|
|
816
741
|
for (var i = 1; i < stringList.length; i++) {
|
|
817
|
-
|
|
818
|
-
if (currStr.startsWith('(') && currStr.endsWith(')')) {
|
|
819
|
-
filterContent += " ".concat(filter_conjunction, " ").concat(stringList[i]);
|
|
820
|
-
} else {
|
|
821
|
-
filterContent += " ".concat(filter_conjunction, " (").concat(stringList[i], ")");
|
|
822
|
-
}
|
|
742
|
+
filterContent += " ".concat(filter_conjunction, " (").concat(stringList[i], ")");
|
|
823
743
|
}
|
|
824
744
|
return filterHeader + filterContent;
|
|
825
745
|
};
|
|
826
746
|
|
|
827
|
-
exports.arrayColumnCondition = arrayColumnCondition;
|
|
828
747
|
exports.checkboxSqlCondition = checkboxSqlCondition;
|
|
829
748
|
exports.collaboratorSqlCondition = collaboratorSqlCondition;
|
|
830
749
|
exports.creatorSqlCondition = creatorSqlCondition;
|
|
831
750
|
exports.ctimeSqlCondition = ctimeSqlCondition;
|
|
832
751
|
exports.dateSqlCondition = dateSqlCondition;
|
|
833
|
-
exports.departmentMultipleSelectSqlCondition = departmentMultipleSelectSqlCondition;
|
|
834
752
|
exports.departmentSingleSelectSqlCondition = departmentSingleSelectSqlCondition;
|
|
835
753
|
exports.fileSqlCondition = fileSqlCondition;
|
|
836
754
|
exports.filter2SqlCondition = filter2SqlCondition;
|
|
837
755
|
exports.formulaSqlCondition = formulaSqlCondition;
|
|
838
756
|
exports.getSqlConditionByFilter = getSqlConditionByFilter;
|
|
839
|
-
exports.getSqlConditionsByFilters = getSqlConditionsByFilters;
|
|
840
757
|
exports.linkSqlCondition = linkSqlCondition;
|
|
841
758
|
exports.longtextSqlCondition = longtextSqlCondition;
|
|
842
759
|
exports.multipleSelectSqlCondition = multipleSelectSqlCondition;
|
package/lib/common.js
CHANGED
|
@@ -50,11 +50,7 @@ var isEmptyObject = function isEmptyObject(obj) {
|
|
|
50
50
|
}
|
|
51
51
|
return true;
|
|
52
52
|
};
|
|
53
|
-
var hasOwnProperty = function hasOwnProperty(obj, key) {
|
|
54
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
55
|
-
};
|
|
56
53
|
|
|
57
54
|
exports.generatorBase64Code = generatorBase64Code;
|
|
58
|
-
exports.hasOwnProperty = hasOwnProperty;
|
|
59
55
|
exports.isEmpty = isEmpty;
|
|
60
56
|
exports.isEmptyObject = isEmptyObject;
|
package/lib/filter/core.js
CHANGED
|
@@ -8,7 +8,6 @@ var date = require('../date.js');
|
|
|
8
8
|
var index = require('../constants/filter/index.js');
|
|
9
9
|
var cellType = require('../constants/cell-type.js');
|
|
10
10
|
var formula = require('../constants/formula.js');
|
|
11
|
-
var common = require('../common.js');
|
|
12
11
|
var filterModifier = require('../constants/filter/filter-modifier.js');
|
|
13
12
|
|
|
14
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -18,25 +17,6 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
18
17
|
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; }
|
|
19
18
|
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__default["default"](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; }
|
|
20
19
|
var EXACT_DATE_TERM_MODIFIER_TYPES = [filterModifier.FILTER_TERM_MODIFIER_TYPE.TODAY, filterModifier.FILTER_TERM_MODIFIER_TYPE.TOMORROW, filterModifier.FILTER_TERM_MODIFIER_TYPE.YESTERDAY, filterModifier.FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_AGO, filterModifier.FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_FROM_NOW, filterModifier.FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_AGO, filterModifier.FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_FROM_NOW, filterModifier.FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_AGO, filterModifier.FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_FROM_NOW, filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE];
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Check if is filter group
|
|
24
|
-
* @param {object} filter
|
|
25
|
-
* @returns bool
|
|
26
|
-
*/
|
|
27
|
-
var checkIsFilterGroup = function checkIsFilterGroup(filter) {
|
|
28
|
-
return common.hasOwnProperty(filter, 'filters');
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Check if is formula/link filter
|
|
33
|
-
* @param {object} filter
|
|
34
|
-
* @returns bool
|
|
35
|
-
*/
|
|
36
|
-
var checkIsFormulaFilter = function checkIsFormulaFilter(filter) {
|
|
37
|
-
var column = filter.column;
|
|
38
|
-
return formula.FORMULA_COLUMN_TYPES_MAP[column.type] || column.type === cellType.CellType.LINK;
|
|
39
|
-
};
|
|
40
20
|
var isCurrentUserDepartment = function isCurrentUserDepartment(departmentId, userDepartmentIdsMap) {
|
|
41
21
|
var _ref = userDepartmentIdsMap || {},
|
|
42
22
|
current_user_department_ids = _ref.current_user_department_ids;
|
|
@@ -52,24 +32,9 @@ var isSpecificDepartment = function isSpecificDepartment(departmentId, filterTer
|
|
|
52
32
|
return filterTerm.includes(departmentId);
|
|
53
33
|
};
|
|
54
34
|
|
|
55
|
-
/**
|
|
56
|
-
* Check if the filter is available to display
|
|
57
|
-
* @param {object} filter
|
|
58
|
-
* @param {array} columns
|
|
59
|
-
* @returns bool
|
|
60
|
-
*/
|
|
61
|
-
var checkIsAvailableFilter = function checkIsAvailableFilter(filter$1, columns) {
|
|
62
|
-
var _ValidateFilter$valid = filter.ValidateFilter.validate(filter$1, columns),
|
|
63
|
-
error_message = _ValidateFilter$valid.error_message;
|
|
64
|
-
if (error_message && error_message === index.FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
35
|
/**
|
|
71
36
|
* Get filters which excludes incomplete
|
|
72
|
-
* @param {array} filters e.g. [{ column_key, filter_predicate, ... }
|
|
37
|
+
* @param {array} filters e.g. [{ column_key, filter_predicate, ... }]
|
|
73
38
|
* @param {array} columns
|
|
74
39
|
* @returns valid filters, array
|
|
75
40
|
*/
|
|
@@ -77,24 +42,11 @@ var getValidFilters = function getValidFilters(filters, columns) {
|
|
|
77
42
|
if (!Array.isArray(filters) || !Array.isArray(columns)) {
|
|
78
43
|
return [];
|
|
79
44
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var availableSubFilters = [];
|
|
85
|
-
if (Array.isArray(subFilters) && subFilters.length > 0) {
|
|
86
|
-
availableSubFilters = subFilters.filter(function (subFilter) {
|
|
87
|
-
return checkIsAvailableFilter(subFilter, columns);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
availableFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
91
|
-
filters: availableSubFilters
|
|
92
|
-
}));
|
|
93
|
-
} else if (checkIsAvailableFilter(filter, columns)) {
|
|
94
|
-
availableFilters.push(filter);
|
|
95
|
-
}
|
|
45
|
+
return filters.filter(function (filter$1) {
|
|
46
|
+
var _ValidateFilter$valid = filter.ValidateFilter.validate(filter$1, columns),
|
|
47
|
+
error_message = _ValidateFilter$valid.error_message;
|
|
48
|
+
return !error_message || error_message !== index.FILTER_ERR_MSG.INCOMPLETE_FILTER;
|
|
96
49
|
});
|
|
97
|
-
return availableFilters;
|
|
98
50
|
};
|
|
99
51
|
|
|
100
52
|
/**
|
|
@@ -356,37 +308,9 @@ var _getFormattedFilter = function getFormattedFilter(filter, column) {
|
|
|
356
308
|
*/
|
|
357
309
|
var getFormattedFilters = function getFormattedFilters(filters) {
|
|
358
310
|
return filters.map(function (filter) {
|
|
359
|
-
if (checkIsFilterGroup(filter)) {
|
|
360
|
-
var subFilters = filter.filters;
|
|
361
|
-
var formattedSubFilters = [];
|
|
362
|
-
if (Array.isArray(subFilters) && subFilters.length > 0) {
|
|
363
|
-
formattedSubFilters = subFilters.map(function (subFilter) {
|
|
364
|
-
return _getFormattedFilter(subFilter, subFilter.column);
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
return _objectSpread(_objectSpread({}, filter), {}, {
|
|
368
|
-
filters: formattedSubFilters
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
311
|
return _getFormattedFilter(filter, filter.column);
|
|
372
312
|
});
|
|
373
313
|
};
|
|
374
|
-
var checkFilter = function checkFilter(filter$1, columns) {
|
|
375
|
-
var _ValidateFilter$valid2 = filter.ValidateFilter.validate(filter$1, columns),
|
|
376
|
-
error_message = _ValidateFilter$valid2.error_message;
|
|
377
|
-
if (error_message) {
|
|
378
|
-
if (error_message === index.FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
379
|
-
return null;
|
|
380
|
-
}
|
|
381
|
-
throw new Error(error_message);
|
|
382
|
-
}
|
|
383
|
-
var newFilter = _objectSpread({}, filter$1);
|
|
384
|
-
var column_key = filter$1.column_key;
|
|
385
|
-
newFilter.column = columns.find(function (column) {
|
|
386
|
-
return column.key === column_key;
|
|
387
|
-
});
|
|
388
|
-
return newFilter;
|
|
389
|
-
};
|
|
390
314
|
|
|
391
315
|
/**
|
|
392
316
|
* Get filters without error messages and formatted with filter column
|
|
@@ -399,65 +323,28 @@ var deleteInvalidFilter = function deleteInvalidFilter(filters, columns) {
|
|
|
399
323
|
return [];
|
|
400
324
|
}
|
|
401
325
|
var cleanFilters = [];
|
|
402
|
-
filters.forEach(function (filter) {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
if (newSubFilter) {
|
|
410
|
-
cleanSubFilters.push(newSubFilter);
|
|
411
|
-
}
|
|
412
|
-
});
|
|
413
|
-
|
|
414
|
-
// just keep the filter group which has valid sub-filters
|
|
415
|
-
if (cleanSubFilters.length > 0) {
|
|
416
|
-
cleanFilters.push(_objectSpread(_objectSpread({}, filter), {}, {
|
|
417
|
-
filters: cleanSubFilters
|
|
418
|
-
}));
|
|
419
|
-
}
|
|
326
|
+
filters.forEach(function (filter$1) {
|
|
327
|
+
var column_key = filter$1.column_key;
|
|
328
|
+
var _ValidateFilter$valid2 = filter.ValidateFilter.validate(filter$1, columns),
|
|
329
|
+
error_message = _ValidateFilter$valid2.error_message;
|
|
330
|
+
if (error_message) {
|
|
331
|
+
if (error_message !== index.FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
332
|
+
throw new Error(error_message);
|
|
420
333
|
}
|
|
421
334
|
} else {
|
|
422
|
-
var
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
335
|
+
var filterColumn = columns.find(function (column) {
|
|
336
|
+
return column.key === column_key;
|
|
337
|
+
});
|
|
338
|
+
var newFilter = _objectSpread(_objectSpread({}, filter$1), {}, {
|
|
339
|
+
column: filterColumn
|
|
340
|
+
});
|
|
341
|
+
cleanFilters.push(newFilter);
|
|
426
342
|
}
|
|
427
343
|
});
|
|
428
344
|
return cleanFilters;
|
|
429
345
|
};
|
|
430
346
|
|
|
431
|
-
/**
|
|
432
|
-
* Categorize filters
|
|
433
|
-
* @param {array} filters
|
|
434
|
-
* @returns {object} { generalFilters, formulaFilters, filterGroups }
|
|
435
|
-
*/
|
|
436
|
-
var getClassifiedFilters = function getClassifiedFilters(filters) {
|
|
437
|
-
var generalFilters = [];
|
|
438
|
-
var formulaFilters = [];
|
|
439
|
-
var filterGroups = [];
|
|
440
|
-
filters.forEach(function (filter) {
|
|
441
|
-
if (checkIsFilterGroup(filter)) {
|
|
442
|
-
filterGroups.push(filter);
|
|
443
|
-
} else if (checkIsFormulaFilter(filter)) {
|
|
444
|
-
formulaFilters.push(filter);
|
|
445
|
-
} else {
|
|
446
|
-
generalFilters.push(filter);
|
|
447
|
-
}
|
|
448
|
-
});
|
|
449
|
-
return {
|
|
450
|
-
generalFilters: generalFilters,
|
|
451
|
-
formulaFilters: formulaFilters,
|
|
452
|
-
filterGroups: filterGroups
|
|
453
|
-
};
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
exports.checkIsAvailableFilter = checkIsAvailableFilter;
|
|
457
|
-
exports.checkIsFilterGroup = checkIsFilterGroup;
|
|
458
|
-
exports.checkIsFormulaFilter = checkIsFormulaFilter;
|
|
459
347
|
exports.deleteInvalidFilter = deleteInvalidFilter;
|
|
460
|
-
exports.getClassifiedFilters = getClassifiedFilters;
|
|
461
348
|
exports.getFormattedFilter = _getFormattedFilter;
|
|
462
349
|
exports.getFormattedFilterOtherDate = getFormattedFilterOtherDate;
|
|
463
350
|
exports.getFormattedFilters = getFormattedFilters;
|
package/lib/filter/filter-row.js
CHANGED
|
@@ -141,7 +141,7 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
141
141
|
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
142
142
|
* @returns filter result, bool
|
|
143
143
|
*/
|
|
144
|
-
var
|
|
144
|
+
var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
145
145
|
var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
146
146
|
formulaRow = _ref2.formulaRow,
|
|
147
147
|
_ref2$username = _ref2.username,
|
|
@@ -151,14 +151,6 @@ var _filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
151
151
|
userDepartmentIdsMap = _ref2$userDepartmentI === void 0 ? {} : _ref2$userDepartmentI;
|
|
152
152
|
if (filterConjunction === index.FILTER_CONJUNCTION_TYPE.AND) {
|
|
153
153
|
return filters.every(function (filter) {
|
|
154
|
-
if (core.checkIsFilterGroup(filter)) {
|
|
155
|
-
return _filterRow(row, filter.filter_conjunction, filter.filters, {
|
|
156
|
-
formulaRow: formulaRow,
|
|
157
|
-
username: username,
|
|
158
|
-
userId: userId,
|
|
159
|
-
userDepartmentIdsMap: userDepartmentIdsMap
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
154
|
return getFilterResult(row, filter, {
|
|
163
155
|
formulaRow: formulaRow,
|
|
164
156
|
username: username,
|
|
@@ -169,14 +161,6 @@ var _filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
169
161
|
}
|
|
170
162
|
if (filterConjunction === index.FILTER_CONJUNCTION_TYPE.OR) {
|
|
171
163
|
return filters.some(function (filter) {
|
|
172
|
-
if (core.checkIsFilterGroup(filter)) {
|
|
173
|
-
return _filterRow(row, filter.filter_conjunction, filter.filters, {
|
|
174
|
-
formulaRow: formulaRow,
|
|
175
|
-
username: username,
|
|
176
|
-
userId: userId,
|
|
177
|
-
userDepartmentIdsMap: userDepartmentIdsMap
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
164
|
return getFilterResult(row, filter, {
|
|
181
165
|
formulaRow: formulaRow,
|
|
182
166
|
username: username,
|
|
@@ -209,7 +193,7 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
209
193
|
rows.forEach(function (row) {
|
|
210
194
|
var rowId = row._id;
|
|
211
195
|
var formulaRow = formulaRows ? formulaRows[rowId] : null;
|
|
212
|
-
if (
|
|
196
|
+
if (filterRow(row, filterConjunction, formattedFilters, {
|
|
213
197
|
formulaRow: formulaRow,
|
|
214
198
|
username: username,
|
|
215
199
|
userId: userId,
|
|
@@ -273,6 +257,6 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
273
257
|
};
|
|
274
258
|
};
|
|
275
259
|
|
|
276
|
-
exports.filterRow =
|
|
260
|
+
exports.filterRow = filterRow;
|
|
277
261
|
exports.filterRows = filterRows;
|
|
278
262
|
exports.getFilteredRowsWithoutFormulaCalculation = getFilteredRowsWithoutFormulaCalculation;
|
package/lib/index.js
CHANGED
|
@@ -253,9 +253,7 @@ exports.searchCollaborators = search.searchCollaborators;
|
|
|
253
253
|
exports.ValidateFilter = filter.ValidateFilter;
|
|
254
254
|
exports.isValidEmail = email.isValidEmail;
|
|
255
255
|
exports.isValidPosition = geolocation$2.isValidPosition;
|
|
256
|
-
exports.checkIsFilterGroup = core$5.checkIsFilterGroup;
|
|
257
256
|
exports.deleteInvalidFilter = core$5.deleteInvalidFilter;
|
|
258
|
-
exports.getClassifiedFilters = core$5.getClassifiedFilters;
|
|
259
257
|
exports.getFormattedFilter = core$5.getFormattedFilter;
|
|
260
258
|
exports.getFormattedFilterOtherDate = core$5.getFormattedFilterOtherDate;
|
|
261
259
|
exports.getFormattedFilters = core$5.getFormattedFilters;
|
package/lib/row/convert.js
CHANGED
|
@@ -114,7 +114,7 @@ var convertRow = function convertRow(row, value, table, view, formulaResults, co
|
|
|
114
114
|
}
|
|
115
115
|
case cellType.CellType.DATE:
|
|
116
116
|
{
|
|
117
|
-
var timeTextWithoutTimezone = cellValue$1.replace(/([+-]\d{2}:?\d{2})|Z$/g, '');
|
|
117
|
+
var timeTextWithoutTimezone = cellValue$1 ? cellValue$1.replace(/([+-]\d{2}:?\d{2})|Z$/g, '') : '';
|
|
118
118
|
var format = column.data && column.data.format;
|
|
119
119
|
result[columnName] = date.formatTextToDate(timeTextWithoutTimezone, format);
|
|
120
120
|
break;
|