dtable-utils 0.0.3-beta.1 → 0.0.4-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/README.md +12 -3
- package/dist/index.js +1 -1
- package/es/cell-value-get/cell-value.js +82 -60
- package/es/cell-value-get/collaborator.js +9 -2
- package/es/cell-value-get/duration.js +3 -3
- package/es/cell-value-get/geolocation.js +23 -25
- package/es/cell-value-get/number.js +19 -11
- package/es/cell-value-get/option.js +18 -4
- package/es/cell-value-get/rate.js +5 -0
- package/es/cell-value-set/date.js +9 -3
- package/es/{column/color.js → color/column-color.js} +25 -3
- package/es/{row/color.js → color/row-color.js} +12 -1
- package/es/column/option.js +37 -7
- package/es/common.js +23 -2
- package/es/constants/formula.js +2 -1
- package/es/filter/core.js +61 -26
- package/es/filter/filter-column/array.js +35 -30
- package/es/filter/filter-column/checkbox.js +9 -3
- package/es/filter/filter-column/collaborator.js +20 -15
- package/es/filter/filter-column/creator.js +22 -13
- package/es/filter/filter-column/date.js +57 -14
- package/es/filter/filter-column/digital-sign.js +11 -8
- package/es/filter/filter-column/file.js +9 -6
- package/es/filter/filter-column/formula.js +16 -8
- package/es/filter/filter-column/geolocation.js +12 -7
- package/es/filter/filter-column/link.js +10 -2
- package/es/filter/filter-column/long-text.js +10 -7
- package/es/filter/filter-column/multiple-select.js +17 -13
- package/es/filter/filter-column/number.js +25 -21
- package/es/filter/filter-column/single-select.js +14 -10
- package/es/filter/filter-column/text.js +18 -13
- package/es/filter/filter-row.js +35 -0
- package/es/group/core.js +15 -6
- package/es/group/group-row.js +39 -3
- package/es/index.js +10 -10
- package/es/link/core.js +14 -14
- package/es/number.js +11 -3
- package/es/row/core.js +20 -1
- package/es/sort/core.js +66 -7
- package/es/sort/sort-column/array.js +39 -30
- package/es/sort/sort-column/checkbox.js +12 -5
- package/es/sort/sort-column/collaborator.js +11 -4
- package/es/sort/sort-column/date.js +12 -12
- package/es/sort/sort-column/formula.js +21 -12
- package/es/sort/sort-column/link.js +18 -9
- package/es/sort/sort-column/multiple-select.js +26 -26
- package/es/sort/sort-column/number.js +15 -8
- package/es/sort/sort-column/single-select.js +16 -8
- package/es/sort/sort-column/text.js +24 -10
- package/es/sort/sort-row.js +22 -38
- package/es/table/column.js +2 -2
- package/es/table/core.js +2 -2
- package/es/table/row.js +4 -4
- package/es/view/core.js +20 -21
- package/es/view/formula.js +35 -31
- package/es/view/group.js +4 -4
- package/es/view/summaries.js +17 -29
- package/lib/cell-value-get/cell-value.js +82 -60
- package/lib/cell-value-get/collaborator.js +9 -2
- package/lib/cell-value-get/duration.js +4 -2
- package/lib/cell-value-get/geolocation.js +23 -25
- package/lib/cell-value-get/number.js +19 -11
- package/lib/cell-value-get/option.js +18 -4
- package/lib/cell-value-get/rate.js +5 -0
- package/lib/cell-value-set/date.js +9 -3
- package/lib/{column/color.js → color/column-color.js} +31 -9
- package/lib/{row/color.js → color/row-color.js} +12 -1
- package/lib/column/option.js +37 -7
- package/lib/common.js +23 -1
- package/lib/constants/formula.js +2 -0
- package/lib/filter/core.js +61 -26
- package/lib/filter/filter-column/array.js +35 -30
- package/lib/filter/filter-column/checkbox.js +9 -3
- package/lib/filter/filter-column/collaborator.js +20 -15
- package/lib/filter/filter-column/creator.js +22 -13
- package/lib/filter/filter-column/date.js +57 -14
- package/lib/filter/filter-column/digital-sign.js +11 -8
- package/lib/filter/filter-column/file.js +9 -6
- package/lib/filter/filter-column/formula.js +16 -8
- package/lib/filter/filter-column/geolocation.js +12 -7
- package/lib/filter/filter-column/link.js +10 -2
- package/lib/filter/filter-column/long-text.js +10 -7
- package/lib/filter/filter-column/multiple-select.js +17 -13
- package/lib/filter/filter-column/number.js +25 -21
- package/lib/filter/filter-column/single-select.js +14 -10
- package/lib/filter/filter-column/text.js +18 -13
- package/lib/filter/filter-row.js +35 -0
- package/lib/group/core.js +15 -6
- package/lib/group/group-row.js +39 -3
- package/lib/index.js +47 -45
- package/lib/link/core.js +14 -14
- package/lib/number.js +11 -3
- package/lib/row/core.js +20 -1
- package/lib/sort/core.js +71 -6
- package/lib/sort/sort-column/array.js +39 -30
- package/lib/sort/sort-column/checkbox.js +12 -5
- package/lib/sort/sort-column/collaborator.js +11 -4
- package/lib/sort/sort-column/date.js +12 -12
- package/lib/sort/sort-column/formula.js +21 -12
- package/lib/sort/sort-column/link.js +18 -9
- package/lib/sort/sort-column/multiple-select.js +25 -26
- package/lib/sort/sort-column/number.js +15 -8
- package/lib/sort/sort-column/single-select.js +16 -8
- package/lib/sort/sort-column/text.js +24 -10
- package/lib/sort/sort-row.js +21 -42
- package/lib/table/column.js +2 -2
- package/lib/table/core.js +2 -2
- package/lib/table/row.js +4 -4
- package/lib/view/core.js +20 -21
- package/lib/view/formula.js +35 -31
- package/lib/view/group.js +4 -4
- package/lib/view/summaries.js +17 -29
- package/package.json +1 -1
- package/es/table/index.js +0 -14
- package/lib/table/index.js +0 -18
|
@@ -3,12 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var date = require('../../date.js');
|
|
6
|
-
require('../../constants/filter/filter-column-options.js');
|
|
7
|
-
var filterModifier = require('../../constants/filter/filter-modifier.js');
|
|
8
6
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
9
|
-
require('../../constants/filter/filter-
|
|
7
|
+
var filterModifier = require('../../constants/filter/filter-modifier.js');
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Filter date
|
|
11
|
+
* @param {string} date
|
|
12
|
+
* @param {string} filter_predicate
|
|
13
|
+
* @param {string} filter_term_modifier
|
|
14
|
+
* @param {any} filter_term date string or number etc.
|
|
15
|
+
* @param {string|object} other_date date string or { startDate, endDate }
|
|
16
|
+
* @returns bool
|
|
17
|
+
*/
|
|
18
|
+
var dateFilter = function dateFilter(date$1, _ref) {
|
|
12
19
|
var filter_predicate = _ref.filter_predicate,
|
|
13
20
|
filter_term_modifier = _ref.filter_term_modifier,
|
|
14
21
|
filter_term = _ref.filter_term,
|
|
@@ -16,42 +23,78 @@ var dateFilter = function dateFilter(cellValue, _ref) {
|
|
|
16
23
|
switch (filter_predicate) {
|
|
17
24
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
18
25
|
{
|
|
19
|
-
return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || date.DateUtils.format(
|
|
26
|
+
return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || date.DateUtils.format(date$1) === other_date;
|
|
20
27
|
}
|
|
21
28
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_WITHIN:
|
|
22
29
|
{
|
|
30
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
if (!date$1) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
23
36
|
var startDate = other_date.startDate,
|
|
24
37
|
endDate = other_date.endDate;
|
|
25
|
-
var currentDate = date.DateUtils.format(
|
|
26
|
-
return
|
|
38
|
+
var currentDate = date.DateUtils.format(date$1);
|
|
39
|
+
return currentDate >= startDate && currentDate <= endDate;
|
|
27
40
|
}
|
|
28
41
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_BEFORE:
|
|
29
42
|
{
|
|
30
|
-
|
|
43
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return date.DateUtils.format(date$1) < other_date;
|
|
31
50
|
}
|
|
32
51
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_AFTER:
|
|
33
52
|
{
|
|
34
|
-
|
|
53
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return date.DateUtils.format(date$1) > other_date;
|
|
35
60
|
}
|
|
36
61
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ON_OR_BEFORE:
|
|
37
62
|
{
|
|
38
|
-
|
|
63
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return date.DateUtils.format(date$1) <= other_date;
|
|
39
70
|
}
|
|
40
71
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ON_OR_AFTER:
|
|
41
72
|
{
|
|
42
|
-
|
|
73
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return date.DateUtils.format(date$1) >= other_date;
|
|
43
80
|
}
|
|
44
81
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
45
82
|
{
|
|
46
|
-
|
|
83
|
+
if (filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
if (!date$1 || !date.DateUtils.getValidDate(date$1)) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return date.DateUtils.format(date$1) !== other_date;
|
|
47
90
|
}
|
|
48
91
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
49
92
|
{
|
|
50
|
-
return
|
|
93
|
+
return !(date$1 && date.DateUtils.getValidDate(date$1));
|
|
51
94
|
}
|
|
52
95
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
53
96
|
{
|
|
54
|
-
return
|
|
97
|
+
return !!(date$1 && date.DateUtils.getValidDate(date$1));
|
|
55
98
|
}
|
|
56
99
|
default:
|
|
57
100
|
{
|
|
@@ -2,23 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../constants/filter/filter-column-options.js');
|
|
6
|
-
require('../../constants/filter/filter-modifier.js');
|
|
7
5
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
8
|
-
require('../../constants/filter/filter-is-within.js');
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter digital signature
|
|
9
|
+
* @param {object} digitalSignature e.g. { username, sign_time, sign_image_url, ... }
|
|
10
|
+
* @param {string} filter_predicate
|
|
11
|
+
* @returns bool
|
|
12
|
+
*/
|
|
13
|
+
var digitalSignFilter = function digitalSignFilter(digitalSignature, _ref) {
|
|
11
14
|
var filter_predicate = _ref.filter_predicate;
|
|
12
15
|
switch (filter_predicate) {
|
|
13
16
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
14
17
|
{
|
|
15
|
-
if (!
|
|
16
|
-
return !
|
|
18
|
+
if (!digitalSignature) return true;
|
|
19
|
+
return !digitalSignature.username || !digitalSignature.sign_time || !digitalSignature.sign_image_url;
|
|
17
20
|
}
|
|
18
21
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
19
22
|
{
|
|
20
|
-
if (!
|
|
21
|
-
return
|
|
23
|
+
if (!digitalSignature) return false;
|
|
24
|
+
return !!(digitalSignature.username && digitalSignature.sign_time && digitalSignature.sign_image_url);
|
|
22
25
|
}
|
|
23
26
|
default:
|
|
24
27
|
{
|
|
@@ -2,21 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../constants/filter/filter-column-options.js');
|
|
6
|
-
require('../../constants/filter/filter-modifier.js');
|
|
7
5
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
8
|
-
require('../../constants/filter/filter-is-within.js');
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter file
|
|
9
|
+
* @param {array} files e.g. [{ name, type, url, ... }] | [ url1, ... ]
|
|
10
|
+
* @param {string} filter_predicate
|
|
11
|
+
* @returns bool
|
|
12
|
+
*/
|
|
13
|
+
var fileFilter = function fileFilter(files, _ref) {
|
|
11
14
|
var filter_predicate = _ref.filter_predicate;
|
|
12
15
|
switch (filter_predicate) {
|
|
13
16
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
14
17
|
{
|
|
15
|
-
return
|
|
18
|
+
return !(files && files.length > 0);
|
|
16
19
|
}
|
|
17
20
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
18
21
|
{
|
|
19
|
-
return
|
|
22
|
+
return !!(files && files.length > 0);
|
|
20
23
|
}
|
|
21
24
|
default:
|
|
22
25
|
{
|
|
@@ -10,7 +10,15 @@ var array = require('./array.js');
|
|
|
10
10
|
var cellValue = require('../../cell-value-get/cell-value.js');
|
|
11
11
|
var formula = require('../../constants/formula.js');
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Filter formula
|
|
15
|
+
* @param {any} computedValue cell value from formulaRow
|
|
16
|
+
* @param {object} filter e.g. { filter_predicate, column, ... }
|
|
17
|
+
* @param {string} username
|
|
18
|
+
* @param {string} userId
|
|
19
|
+
* @returns bool
|
|
20
|
+
*/
|
|
21
|
+
var formulaFilter = function formulaFilter(computedValue, filter, _ref) {
|
|
14
22
|
var username = _ref.username,
|
|
15
23
|
userId = _ref.userId;
|
|
16
24
|
var data = filter.column.data;
|
|
@@ -19,25 +27,25 @@ var formulaFilter = function formulaFilter(cellValue$1, filter, _ref) {
|
|
|
19
27
|
switch (result_type) {
|
|
20
28
|
case formula.FORMULA_RESULT_TYPE.NUMBER:
|
|
21
29
|
{
|
|
22
|
-
return number.numberFilter(
|
|
30
|
+
return number.numberFilter(computedValue, filter);
|
|
23
31
|
}
|
|
24
32
|
case formula.FORMULA_RESULT_TYPE.DATE:
|
|
25
33
|
{
|
|
26
|
-
return date.dateFilter(
|
|
34
|
+
return date.dateFilter(computedValue, filter);
|
|
27
35
|
}
|
|
28
36
|
case formula.FORMULA_RESULT_TYPE.BOOL:
|
|
29
37
|
{
|
|
30
|
-
var normalizedCellValue =
|
|
31
|
-
if (
|
|
38
|
+
var normalizedCellValue = computedValue;
|
|
39
|
+
if (computedValue === 'true') {
|
|
32
40
|
normalizedCellValue = true;
|
|
33
|
-
} else if (
|
|
41
|
+
} else if (computedValue === 'false') {
|
|
34
42
|
normalizedCellValue = false;
|
|
35
43
|
}
|
|
36
44
|
return checkbox.checkboxFilter(normalizedCellValue, filter);
|
|
37
45
|
}
|
|
38
46
|
case formula.FORMULA_RESULT_TYPE.ARRAY:
|
|
39
47
|
{
|
|
40
|
-
return array.filterByArrayType(
|
|
48
|
+
return array.filterByArrayType(computedValue, filter, {
|
|
41
49
|
username: username,
|
|
42
50
|
userId: userId
|
|
43
51
|
});
|
|
@@ -45,7 +53,7 @@ var formulaFilter = function formulaFilter(cellValue$1, filter, _ref) {
|
|
|
45
53
|
default:
|
|
46
54
|
{
|
|
47
55
|
// FORMULA_RESULT_TYPE.STRING
|
|
48
|
-
return text.textFilter(cellValue.getFormulaDisplayString(
|
|
56
|
+
return text.textFilter(cellValue.getFormulaDisplayString(computedValue, data) || '', filter, userId);
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
59
|
};
|
|
@@ -3,16 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var geolocation = require('../../cell-value-get/geolocation.js');
|
|
6
|
-
require('../../constants/filter/filter-column-options.js');
|
|
7
|
-
require('../../constants/filter/filter-modifier.js');
|
|
8
6
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
9
|
-
require('../../constants/filter/filter-is-within.js');
|
|
10
7
|
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Filter geolocation
|
|
10
|
+
* @param {object} location e.g. { province, ... }
|
|
11
|
+
* @param {string} filter_predicate
|
|
12
|
+
* @param {string} filter_term
|
|
13
|
+
* @param {object} column e.g. { type, data: { geo_format, ... }, ... }
|
|
14
|
+
* @returns bool
|
|
15
|
+
*/
|
|
16
|
+
var geolocationFilter = function geolocationFilter(location, _ref) {
|
|
12
17
|
var filter_predicate = _ref.filter_predicate,
|
|
13
18
|
filter_term = _ref.filter_term,
|
|
14
19
|
column = _ref.column;
|
|
15
|
-
var geolocation$1 = geolocation.getGeolocationDisplayString(
|
|
20
|
+
var geolocation$1 = geolocation.getGeolocationDisplayString(location, column.data);
|
|
16
21
|
switch (filter_predicate) {
|
|
17
22
|
case filterPredicate.FILTER_PREDICATE_TYPE.CONTAINS:
|
|
18
23
|
{
|
|
@@ -41,11 +46,11 @@ var geolocationFilter = function geolocationFilter(cellValue, _ref) {
|
|
|
41
46
|
}
|
|
42
47
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
43
48
|
{
|
|
44
|
-
return geolocation$1
|
|
49
|
+
return !geolocation$1;
|
|
45
50
|
}
|
|
46
51
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
47
52
|
{
|
|
48
|
-
return geolocation$1
|
|
53
|
+
return !!geolocation$1;
|
|
49
54
|
}
|
|
50
55
|
default:
|
|
51
56
|
{
|
|
@@ -4,10 +4,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var array = require('./array.js');
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter link
|
|
9
|
+
* @param {array} linkedCellValues e.g. [ displayCellValue, ... ]
|
|
10
|
+
* @param {object} filter e.g. { filter_predicate, column, ... }
|
|
11
|
+
* @param {string} username
|
|
12
|
+
* @param {string} userId
|
|
13
|
+
* @returns bool
|
|
14
|
+
*/
|
|
15
|
+
var linkFilter = function linkFilter(linkedCellValues, filter, _ref) {
|
|
8
16
|
var username = _ref.username,
|
|
9
17
|
userId = _ref.userId;
|
|
10
|
-
return array.filterByArrayType(
|
|
18
|
+
return array.filterByArrayType(linkedCellValues, filter, {
|
|
11
19
|
username: username,
|
|
12
20
|
userId: userId
|
|
13
21
|
});
|
|
@@ -2,22 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../constants/filter/filter-column-options.js');
|
|
6
|
-
require('../../constants/filter/filter-modifier.js');
|
|
7
5
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
8
|
-
require('../../constants/filter/filter-is-within.js');
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter long-text
|
|
9
|
+
* @param {object} longText e.g. { text, ... }
|
|
10
|
+
* @param {string} filter_predicate
|
|
11
|
+
* @returns bool
|
|
12
|
+
*/
|
|
13
|
+
var longTextFilter = function longTextFilter(longText, _ref) {
|
|
11
14
|
var filter_predicate = _ref.filter_predicate;
|
|
12
|
-
var text =
|
|
15
|
+
var text = longText ? longText.text : null;
|
|
13
16
|
switch (filter_predicate) {
|
|
14
17
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
15
18
|
{
|
|
16
|
-
return text
|
|
19
|
+
return !text;
|
|
17
20
|
}
|
|
18
21
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
19
22
|
{
|
|
20
|
-
return text
|
|
23
|
+
return !!text;
|
|
21
24
|
}
|
|
22
25
|
default:
|
|
23
26
|
{
|
|
@@ -3,38 +3,42 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
6
|
-
require('../../constants/filter/filter-column-options.js');
|
|
7
|
-
require('../../constants/filter/filter-modifier.js');
|
|
8
6
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
9
|
-
require('../../constants/filter/filter-is-within.js');
|
|
10
7
|
|
|
11
8
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
9
|
|
|
13
10
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
14
11
|
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Filter multiple-select
|
|
14
|
+
* @param {array} optionIds e.g. [ option.id, ... ]
|
|
15
|
+
* @param {string} filter_predicate
|
|
16
|
+
* @param {array} filter_term option ids
|
|
17
|
+
* @returns bool
|
|
18
|
+
*/
|
|
19
|
+
var multipleSelectFilter = function multipleSelectFilter(optionIds, _ref) {
|
|
16
20
|
var filter_predicate = _ref.filter_predicate,
|
|
17
21
|
filter_term = _ref.filter_term;
|
|
18
22
|
switch (filter_predicate) {
|
|
19
23
|
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_ANY_OF:
|
|
20
24
|
{
|
|
21
|
-
return filter_term.length === 0 || Array.isArray(
|
|
25
|
+
return filter_term.length === 0 || Array.isArray(optionIds) && optionIds.some(function (optionId) {
|
|
22
26
|
return filter_term.includes(optionId);
|
|
23
27
|
});
|
|
24
28
|
}
|
|
25
29
|
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_ALL_OF:
|
|
26
30
|
{
|
|
27
|
-
return filter_term.length === 0 || Array.isArray(
|
|
28
|
-
return
|
|
31
|
+
return filter_term.length === 0 || Array.isArray(optionIds) && filter_term.every(function (optionId) {
|
|
32
|
+
return optionIds.includes(optionId);
|
|
29
33
|
});
|
|
30
34
|
}
|
|
31
35
|
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_NONE_OF:
|
|
32
36
|
{
|
|
33
|
-
if (filter_term.length === 0 || !Array.isArray(
|
|
37
|
+
if (filter_term.length === 0 || !Array.isArray(optionIds) || optionIds.length === 0) {
|
|
34
38
|
return true;
|
|
35
39
|
}
|
|
36
40
|
return filter_term.every(function (optionId) {
|
|
37
|
-
return
|
|
41
|
+
return optionIds.indexOf(optionId) < 0;
|
|
38
42
|
});
|
|
39
43
|
}
|
|
40
44
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_EXACTLY:
|
|
@@ -42,21 +46,21 @@ var multipleSelectFilter = function multipleSelectFilter(cellValue, _ref) {
|
|
|
42
46
|
if (filter_term.length === 0) {
|
|
43
47
|
return true;
|
|
44
48
|
}
|
|
45
|
-
if (!Array.isArray(
|
|
49
|
+
if (!Array.isArray(optionIds)) {
|
|
46
50
|
return false;
|
|
47
51
|
}
|
|
48
52
|
var uniqueArr = function uniqueArr(arr) {
|
|
49
53
|
return _toConsumableArray__default["default"](new Set(arr)).sort();
|
|
50
54
|
};
|
|
51
|
-
return uniqueArr(
|
|
55
|
+
return uniqueArr(optionIds).toString() === uniqueArr(filter_term).toString();
|
|
52
56
|
}
|
|
53
57
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
54
58
|
{
|
|
55
|
-
return !Array.isArray(
|
|
59
|
+
return !Array.isArray(optionIds) || optionIds.length === 0;
|
|
56
60
|
}
|
|
57
61
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
58
62
|
{
|
|
59
|
-
return Array.isArray(
|
|
63
|
+
return Array.isArray(optionIds) && optionIds.length > 0;
|
|
60
64
|
}
|
|
61
65
|
default:
|
|
62
66
|
{
|
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var number = require('../../number.js');
|
|
6
|
-
require('../../constants/filter/filter-column-options.js');
|
|
7
|
-
require('../../constants/filter/filter-modifier.js');
|
|
8
6
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
9
|
-
require('../../constants/filter/filter-is-within.js');
|
|
10
7
|
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Filter number
|
|
10
|
+
* @param {number} number
|
|
11
|
+
* @param {string} filter_predicate
|
|
12
|
+
* @param {number} filter_term
|
|
13
|
+
* @returns bool
|
|
14
|
+
*/
|
|
15
|
+
var numberFilter = function numberFilter(number$1, _ref) {
|
|
12
16
|
var filter_predicate = _ref.filter_predicate,
|
|
13
17
|
filter_term = _ref.filter_term;
|
|
14
18
|
switch (filter_predicate) {
|
|
@@ -17,75 +21,75 @@ var numberFilter = function numberFilter(cellValue, _ref) {
|
|
|
17
21
|
if (!filter_term && filter_term !== 0) {
|
|
18
22
|
return true;
|
|
19
23
|
}
|
|
20
|
-
if (!
|
|
24
|
+
if (!number$1 && number$1 !== 0) {
|
|
21
25
|
return false;
|
|
22
26
|
}
|
|
23
|
-
return number.isNumberEqual(filter_term,
|
|
27
|
+
return number.isNumberEqual(filter_term, number$1);
|
|
24
28
|
}
|
|
25
29
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EQUAL:
|
|
26
30
|
{
|
|
27
|
-
if (!filter_term && filter_term !== 0 || !
|
|
31
|
+
if (!filter_term && filter_term !== 0 || !number$1 && number$1 !== 0) {
|
|
28
32
|
return true;
|
|
29
33
|
}
|
|
30
|
-
return !number.isNumberEqual(filter_term,
|
|
34
|
+
return !number.isNumberEqual(filter_term, number$1);
|
|
31
35
|
}
|
|
32
36
|
case filterPredicate.FILTER_PREDICATE_TYPE.LESS:
|
|
33
37
|
{
|
|
34
38
|
if (!filter_term && filter_term !== 0) {
|
|
35
39
|
return true;
|
|
36
40
|
}
|
|
37
|
-
if (!
|
|
41
|
+
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
|
|
38
42
|
return false;
|
|
39
43
|
}
|
|
40
|
-
return
|
|
44
|
+
return number$1 < filter_term;
|
|
41
45
|
}
|
|
42
46
|
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER:
|
|
43
47
|
{
|
|
44
48
|
if (!filter_term && filter_term !== 0) {
|
|
45
49
|
return true;
|
|
46
50
|
}
|
|
47
|
-
if (!
|
|
51
|
+
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
|
|
48
52
|
return false;
|
|
49
53
|
}
|
|
50
|
-
return
|
|
54
|
+
return number$1 > filter_term;
|
|
51
55
|
}
|
|
52
56
|
case filterPredicate.FILTER_PREDICATE_TYPE.LESS_OR_EQUAL:
|
|
53
57
|
{
|
|
54
58
|
if (!filter_term && filter_term !== 0) {
|
|
55
59
|
return true;
|
|
56
60
|
}
|
|
57
|
-
if (!
|
|
61
|
+
if (!number$1 && number$1 !== 0) {
|
|
58
62
|
return false;
|
|
59
63
|
}
|
|
60
|
-
if (number.isNumberEqual(
|
|
64
|
+
if (number.isNumberEqual(number$1, filter_term)) {
|
|
61
65
|
return true;
|
|
62
66
|
}
|
|
63
|
-
return
|
|
67
|
+
return number$1 < filter_term;
|
|
64
68
|
}
|
|
65
69
|
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER_OR_EQUAL:
|
|
66
70
|
{
|
|
67
71
|
if (!filter_term && filter_term !== 0) {
|
|
68
72
|
return true;
|
|
69
73
|
}
|
|
70
|
-
if (!
|
|
74
|
+
if (!number$1 && number$1 !== 0) {
|
|
71
75
|
return false;
|
|
72
76
|
}
|
|
73
|
-
return number.isNumberEqual(
|
|
77
|
+
return number.isNumberEqual(number$1, filter_term) || number$1 > filter_term;
|
|
74
78
|
}
|
|
75
79
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
76
80
|
{
|
|
77
|
-
if (
|
|
81
|
+
if (number$1 === 0) {
|
|
78
82
|
return false;
|
|
79
83
|
}
|
|
80
|
-
return !
|
|
84
|
+
return !number$1 || typeof number$1 !== 'number';
|
|
81
85
|
}
|
|
82
86
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
83
87
|
{
|
|
84
88
|
// must be a number
|
|
85
|
-
if (
|
|
89
|
+
if (number$1 === 0) {
|
|
86
90
|
return true;
|
|
87
91
|
}
|
|
88
|
-
return
|
|
92
|
+
return !!(number$1 && typeof number$1 === 'number');
|
|
89
93
|
}
|
|
90
94
|
default:
|
|
91
95
|
{
|
|
@@ -2,38 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../constants/filter/filter-column-options.js');
|
|
6
|
-
require('../../constants/filter/filter-modifier.js');
|
|
7
5
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
8
|
-
require('../../constants/filter/filter-is-within.js');
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter single-select
|
|
9
|
+
* @param {string} optionId
|
|
10
|
+
* @param {string} filter_predicate
|
|
11
|
+
* @param {string|array} filter_term option id or option ids
|
|
12
|
+
* @returns bool
|
|
13
|
+
*/
|
|
14
|
+
var singleSelectFilter = function singleSelectFilter(optionId, _ref) {
|
|
11
15
|
var filter_predicate = _ref.filter_predicate,
|
|
12
16
|
filter_term = _ref.filter_term;
|
|
13
17
|
switch (filter_predicate) {
|
|
14
18
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
15
19
|
{
|
|
16
|
-
return !filter_term ||
|
|
20
|
+
return !filter_term || optionId === filter_term;
|
|
17
21
|
}
|
|
18
22
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
19
23
|
{
|
|
20
|
-
return !filter_term ||
|
|
24
|
+
return !filter_term || optionId !== filter_term;
|
|
21
25
|
}
|
|
22
26
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF:
|
|
23
27
|
{
|
|
24
|
-
return filter_term.length === 0 || filter_term.includes(
|
|
28
|
+
return filter_term.length === 0 || filter_term.includes(optionId);
|
|
25
29
|
}
|
|
26
30
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF:
|
|
27
31
|
{
|
|
28
|
-
return filter_term.length === 0 || filter_term.indexOf(
|
|
32
|
+
return filter_term.length === 0 || filter_term.indexOf(optionId) < 0;
|
|
29
33
|
}
|
|
30
34
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
31
35
|
{
|
|
32
|
-
return
|
|
36
|
+
return !optionId;
|
|
33
37
|
}
|
|
34
38
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
35
39
|
{
|
|
36
|
-
return
|
|
40
|
+
return !!optionId;
|
|
37
41
|
}
|
|
38
42
|
default:
|
|
39
43
|
{
|
|
@@ -2,12 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../constants/filter/filter-column-options.js');
|
|
6
|
-
require('../../constants/filter/filter-modifier.js');
|
|
7
5
|
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
8
|
-
require('../../constants/filter/filter-is-within.js');
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Filter text
|
|
9
|
+
* @param {string} text
|
|
10
|
+
* @param {string} filter_predicate
|
|
11
|
+
* @param {string} filter_term
|
|
12
|
+
* @param {string} userId
|
|
13
|
+
* @returns bool
|
|
14
|
+
*/
|
|
15
|
+
var textFilter = function textFilter(text, _ref, userId) {
|
|
11
16
|
var filter_predicate = _ref.filter_predicate,
|
|
12
17
|
filter_term = _ref.filter_term;
|
|
13
18
|
switch (filter_predicate) {
|
|
@@ -16,38 +21,38 @@ var textFilter = function textFilter(cellValue, _ref, userId) {
|
|
|
16
21
|
if (!filter_term) {
|
|
17
22
|
return true;
|
|
18
23
|
}
|
|
19
|
-
if (!
|
|
24
|
+
if (!text) {
|
|
20
25
|
return false;
|
|
21
26
|
}
|
|
22
|
-
return
|
|
27
|
+
return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) > -1;
|
|
23
28
|
}
|
|
24
29
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_CONTAIN:
|
|
25
30
|
{
|
|
26
|
-
if (!filter_term || !
|
|
31
|
+
if (!filter_term || !text) {
|
|
27
32
|
return true;
|
|
28
33
|
}
|
|
29
|
-
return
|
|
34
|
+
return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) < 0;
|
|
30
35
|
}
|
|
31
36
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
32
37
|
{
|
|
33
|
-
return !filter_term ||
|
|
38
|
+
return !filter_term || text === filter_term;
|
|
34
39
|
}
|
|
35
40
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
36
41
|
{
|
|
37
|
-
return !filter_term ||
|
|
42
|
+
return !filter_term || text !== filter_term;
|
|
38
43
|
}
|
|
39
44
|
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
40
45
|
{
|
|
41
|
-
return
|
|
46
|
+
return !text;
|
|
42
47
|
}
|
|
43
48
|
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
44
49
|
{
|
|
45
|
-
return
|
|
50
|
+
return !!text;
|
|
46
51
|
}
|
|
47
52
|
case filterPredicate.FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID:
|
|
48
53
|
{
|
|
49
54
|
if (!userId) return false;
|
|
50
|
-
return
|
|
55
|
+
return text === userId;
|
|
51
56
|
}
|
|
52
57
|
default:
|
|
53
58
|
{
|