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.
Files changed (115) hide show
  1. package/README.md +12 -3
  2. package/dist/index.js +1 -1
  3. package/es/cell-value-get/cell-value.js +82 -60
  4. package/es/cell-value-get/collaborator.js +9 -2
  5. package/es/cell-value-get/duration.js +3 -3
  6. package/es/cell-value-get/geolocation.js +23 -25
  7. package/es/cell-value-get/number.js +19 -11
  8. package/es/cell-value-get/option.js +18 -4
  9. package/es/cell-value-get/rate.js +5 -0
  10. package/es/cell-value-set/date.js +9 -3
  11. package/es/{column/color.js → color/column-color.js} +25 -3
  12. package/es/{row/color.js → color/row-color.js} +12 -1
  13. package/es/column/option.js +37 -7
  14. package/es/common.js +23 -2
  15. package/es/constants/formula.js +2 -1
  16. package/es/filter/core.js +61 -26
  17. package/es/filter/filter-column/array.js +35 -30
  18. package/es/filter/filter-column/checkbox.js +9 -3
  19. package/es/filter/filter-column/collaborator.js +20 -15
  20. package/es/filter/filter-column/creator.js +22 -13
  21. package/es/filter/filter-column/date.js +57 -14
  22. package/es/filter/filter-column/digital-sign.js +11 -8
  23. package/es/filter/filter-column/file.js +9 -6
  24. package/es/filter/filter-column/formula.js +16 -8
  25. package/es/filter/filter-column/geolocation.js +12 -7
  26. package/es/filter/filter-column/link.js +10 -2
  27. package/es/filter/filter-column/long-text.js +10 -7
  28. package/es/filter/filter-column/multiple-select.js +17 -13
  29. package/es/filter/filter-column/number.js +25 -21
  30. package/es/filter/filter-column/single-select.js +14 -10
  31. package/es/filter/filter-column/text.js +18 -13
  32. package/es/filter/filter-row.js +35 -0
  33. package/es/group/core.js +15 -6
  34. package/es/group/group-row.js +39 -3
  35. package/es/index.js +10 -10
  36. package/es/link/core.js +14 -14
  37. package/es/number.js +11 -3
  38. package/es/row/core.js +20 -1
  39. package/es/sort/core.js +66 -7
  40. package/es/sort/sort-column/array.js +39 -30
  41. package/es/sort/sort-column/checkbox.js +12 -5
  42. package/es/sort/sort-column/collaborator.js +11 -4
  43. package/es/sort/sort-column/date.js +12 -12
  44. package/es/sort/sort-column/formula.js +21 -12
  45. package/es/sort/sort-column/link.js +18 -9
  46. package/es/sort/sort-column/multiple-select.js +26 -26
  47. package/es/sort/sort-column/number.js +15 -8
  48. package/es/sort/sort-column/single-select.js +16 -8
  49. package/es/sort/sort-column/text.js +24 -10
  50. package/es/sort/sort-row.js +22 -38
  51. package/es/table/column.js +2 -2
  52. package/es/table/core.js +2 -2
  53. package/es/table/row.js +4 -4
  54. package/es/view/core.js +20 -21
  55. package/es/view/formula.js +35 -31
  56. package/es/view/group.js +4 -4
  57. package/es/view/summaries.js +17 -29
  58. package/lib/cell-value-get/cell-value.js +82 -60
  59. package/lib/cell-value-get/collaborator.js +9 -2
  60. package/lib/cell-value-get/duration.js +4 -2
  61. package/lib/cell-value-get/geolocation.js +23 -25
  62. package/lib/cell-value-get/number.js +19 -11
  63. package/lib/cell-value-get/option.js +18 -4
  64. package/lib/cell-value-get/rate.js +5 -0
  65. package/lib/cell-value-set/date.js +9 -3
  66. package/lib/{column/color.js → color/column-color.js} +31 -9
  67. package/lib/{row/color.js → color/row-color.js} +12 -1
  68. package/lib/column/option.js +37 -7
  69. package/lib/common.js +23 -1
  70. package/lib/constants/formula.js +2 -0
  71. package/lib/filter/core.js +61 -26
  72. package/lib/filter/filter-column/array.js +35 -30
  73. package/lib/filter/filter-column/checkbox.js +9 -3
  74. package/lib/filter/filter-column/collaborator.js +20 -15
  75. package/lib/filter/filter-column/creator.js +22 -13
  76. package/lib/filter/filter-column/date.js +57 -14
  77. package/lib/filter/filter-column/digital-sign.js +11 -8
  78. package/lib/filter/filter-column/file.js +9 -6
  79. package/lib/filter/filter-column/formula.js +16 -8
  80. package/lib/filter/filter-column/geolocation.js +12 -7
  81. package/lib/filter/filter-column/link.js +10 -2
  82. package/lib/filter/filter-column/long-text.js +10 -7
  83. package/lib/filter/filter-column/multiple-select.js +17 -13
  84. package/lib/filter/filter-column/number.js +25 -21
  85. package/lib/filter/filter-column/single-select.js +14 -10
  86. package/lib/filter/filter-column/text.js +18 -13
  87. package/lib/filter/filter-row.js +35 -0
  88. package/lib/group/core.js +15 -6
  89. package/lib/group/group-row.js +39 -3
  90. package/lib/index.js +47 -45
  91. package/lib/link/core.js +14 -14
  92. package/lib/number.js +11 -3
  93. package/lib/row/core.js +20 -1
  94. package/lib/sort/core.js +71 -6
  95. package/lib/sort/sort-column/array.js +39 -30
  96. package/lib/sort/sort-column/checkbox.js +12 -5
  97. package/lib/sort/sort-column/collaborator.js +11 -4
  98. package/lib/sort/sort-column/date.js +12 -12
  99. package/lib/sort/sort-column/formula.js +21 -12
  100. package/lib/sort/sort-column/link.js +18 -9
  101. package/lib/sort/sort-column/multiple-select.js +25 -26
  102. package/lib/sort/sort-column/number.js +15 -8
  103. package/lib/sort/sort-column/single-select.js +16 -8
  104. package/lib/sort/sort-column/text.js +24 -10
  105. package/lib/sort/sort-row.js +21 -42
  106. package/lib/table/column.js +2 -2
  107. package/lib/table/core.js +2 -2
  108. package/lib/table/row.js +4 -4
  109. package/lib/view/core.js +20 -21
  110. package/lib/view/formula.js +35 -31
  111. package/lib/view/group.js +4 -4
  112. package/lib/view/summaries.js +17 -29
  113. package/package.json +1 -1
  114. package/es/table/index.js +0 -14
  115. 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-is-within.js');
7
+ var filterModifier = require('../../constants/filter/filter-modifier.js');
10
8
 
11
- var dateFilter = function dateFilter(cellValue, _ref) {
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(cellValue) === other_date;
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(cellValue);
26
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && currentDate >= startDate && currentDate <= endDate;
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
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && date.DateUtils.getValidDate(cellValue) && date.DateUtils.format(cellValue) < other_date;
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
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && date.DateUtils.getValidDate(cellValue) && date.DateUtils.format(cellValue) > other_date;
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
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && date.DateUtils.getValidDate(cellValue) && date.DateUtils.format(cellValue) <= other_date;
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
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && date.DateUtils.getValidDate(cellValue) && date.DateUtils.format(cellValue) >= other_date;
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
- return filter_term_modifier === filterModifier.FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !cellValue || date.DateUtils.format(cellValue) !== other_date;
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 cellValue && date.DateUtils.getValidDate(cellValue) ? false : true;
93
+ return !(date$1 && date.DateUtils.getValidDate(date$1));
51
94
  }
52
95
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
53
96
  {
54
- return cellValue && date.DateUtils.getValidDate(cellValue) ? true : false;
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
- var digitalSignFilter = function digitalSignFilter(cellValue, _ref) {
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 (!cellValue) return true;
16
- return !cellValue.username || !cellValue.sign_time || !cellValue.sign_image_url;
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 (!cellValue) return false;
21
- return cellValue.username && cellValue.sign_time && cellValue.sign_image_url ? true : false;
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
- var fileFilter = function fileFilter(cellValue, _ref) {
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 cellValue && cellValue.length > 0 ? false : true;
18
+ return !(files && files.length > 0);
16
19
  }
17
20
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
18
21
  {
19
- return cellValue && cellValue.length > 0 ? true : false;
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
- var formulaFilter = function formulaFilter(cellValue$1, filter, _ref) {
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(cellValue$1, filter);
30
+ return number.numberFilter(computedValue, filter);
23
31
  }
24
32
  case formula.FORMULA_RESULT_TYPE.DATE:
25
33
  {
26
- return date.dateFilter(cellValue$1, filter);
34
+ return date.dateFilter(computedValue, filter);
27
35
  }
28
36
  case formula.FORMULA_RESULT_TYPE.BOOL:
29
37
  {
30
- var normalizedCellValue = cellValue$1;
31
- if (cellValue$1 === 'true') {
38
+ var normalizedCellValue = computedValue;
39
+ if (computedValue === 'true') {
32
40
  normalizedCellValue = true;
33
- } else if (cellValue$1 === 'false') {
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(cellValue$1, filter, {
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(cellValue$1, data) || '', filter, userId);
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
- var geolocationFilter = function geolocationFilter(cellValue, _ref) {
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(cellValue, column.data);
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 ? false : true;
49
+ return !geolocation$1;
45
50
  }
46
51
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
47
52
  {
48
- return geolocation$1 ? true : false;
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
- var linkFilter = function linkFilter(cellValue, filter, _ref) {
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(cellValue, filter, {
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
- var longTextFilter = function longTextFilter(cellValue, _ref) {
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 = cellValue ? cellValue.text : null;
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 ? false : true;
19
+ return !text;
17
20
  }
18
21
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
19
22
  {
20
- return text ? true : false;
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
- var multipleSelectFilter = function multipleSelectFilter(cellValue, _ref) {
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(cellValue) && cellValue.some(function (optionId) {
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(cellValue) && filter_term.every(function (optionId) {
28
- return cellValue.includes(optionId);
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(cellValue) || cellValue.length === 0) {
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 cellValue.indexOf(optionId) < 0;
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(cellValue)) {
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(cellValue).toString() === uniqueArr(filter_term).toString();
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(cellValue) || cellValue.length === 0;
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(cellValue) && cellValue.length > 0;
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
- var numberFilter = function numberFilter(cellValue, _ref) {
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 (!cellValue && cellValue !== 0) {
24
+ if (!number$1 && number$1 !== 0) {
21
25
  return false;
22
26
  }
23
- return number.isNumberEqual(filter_term, cellValue);
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 || !cellValue && cellValue !== 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, cellValue);
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 (!cellValue && cellValue !== 0 || number.isNumberEqual(cellValue, filter_term)) {
41
+ if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
38
42
  return false;
39
43
  }
40
- return cellValue < filter_term;
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 (!cellValue && cellValue !== 0 || number.isNumberEqual(cellValue, filter_term)) {
51
+ if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
48
52
  return false;
49
53
  }
50
- return cellValue > filter_term;
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 (!cellValue && cellValue !== 0) {
61
+ if (!number$1 && number$1 !== 0) {
58
62
  return false;
59
63
  }
60
- if (number.isNumberEqual(cellValue, filter_term)) {
64
+ if (number.isNumberEqual(number$1, filter_term)) {
61
65
  return true;
62
66
  }
63
- return cellValue < filter_term;
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 (!cellValue && cellValue !== 0) {
74
+ if (!number$1 && number$1 !== 0) {
71
75
  return false;
72
76
  }
73
- return number.isNumberEqual(cellValue, filter_term) || cellValue > filter_term;
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 (cellValue === 0) {
81
+ if (number$1 === 0) {
78
82
  return false;
79
83
  }
80
- return !cellValue || typeof cellValue !== 'number';
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 (cellValue === 0) {
89
+ if (number$1 === 0) {
86
90
  return true;
87
91
  }
88
- return cellValue && typeof cellValue === 'number' ? true : false;
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
- var singleSelectFilter = function singleSelectFilter(cellValue, _ref) {
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 || cellValue === 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 || cellValue !== 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(cellValue);
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(cellValue) < 0;
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 cellValue ? false : true;
36
+ return !optionId;
33
37
  }
34
38
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
35
39
  {
36
- return cellValue ? true : false;
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
- var textFilter = function textFilter(cellValue, _ref, userId) {
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 (!cellValue) {
24
+ if (!text) {
20
25
  return false;
21
26
  }
22
- return cellValue.toString().toLowerCase().indexOf(filter_term.toLowerCase()) > -1;
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 || !cellValue) {
31
+ if (!filter_term || !text) {
27
32
  return true;
28
33
  }
29
- return cellValue.toString().toLowerCase().indexOf(filter_term.toLowerCase()) < 0;
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 || cellValue === 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 || cellValue !== filter_term;
42
+ return !filter_term || text !== filter_term;
38
43
  }
39
44
  case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
40
45
  {
41
- return cellValue ? false : true;
46
+ return !text;
42
47
  }
43
48
  case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
44
49
  {
45
- return cellValue ? true : false;
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 cellValue === userId;
55
+ return text === userId;
51
56
  }
52
57
  default:
53
58
  {