dtable-utils 0.0.3 → 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 +42 -5
- package/dist/index.js +1 -1
- package/es/cell-value-get/cell-value.js +250 -20
- package/es/cell-value-get/collaborator.js +16 -3
- package/es/cell-value-get/digital-sign.js +1 -1
- package/es/cell-value-get/duration.js +3 -3
- package/es/cell-value-get/geolocation.js +52 -30
- package/es/cell-value-get/long-text.js +1 -1
- package/es/cell-value-get/number.js +51 -19
- package/es/cell-value-get/option.js +33 -9
- package/es/cell-value-get/rate.js +11 -0
- package/es/cell-value-set/date.js +26 -0
- package/es/cell-value-set/number.js +53 -1
- package/es/color/column-color.js +437 -0
- package/es/color/gradient-color.js +100 -0
- package/es/color/row-color.js +289 -0
- package/es/column/{common.js → core.js} +2 -14
- package/es/column/date.js +1 -1
- package/es/column/number.js +1 -1
- package/es/column/option.js +145 -0
- package/es/common.js +23 -3
- package/es/constants/color.js +16 -0
- package/es/constants/column-permission.js +7 -0
- package/es/constants/column.js +127 -2
- package/es/constants/filter/index.js +5 -1
- package/es/constants/formula.js +2 -1
- package/es/constants/grid-header.js +6 -0
- package/es/constants/group.js +23 -0
- package/es/constants/limit.js +3 -0
- package/es/constants/reg.js +4 -0
- package/es/constants/row-color.js +11 -0
- package/es/constants/sort.js +11 -0
- package/es/date.js +1 -1
- package/es/filter/core.js +322 -0
- package/es/filter/filter-column/array.js +87 -0
- package/es/filter/filter-column/checkbox.js +14 -0
- package/es/filter/filter-column/collaborator.js +72 -0
- package/es/filter/filter-column/creator.js +59 -0
- package/es/filter/filter-column/date.js +102 -0
- package/es/filter/filter-column/digital-sign.js +29 -0
- package/es/filter/filter-column/file.js +27 -0
- package/es/filter/filter-column/formula.js +57 -0
- package/es/filter/filter-column/geolocation.js +58 -0
- package/es/filter/filter-column/link.js +20 -0
- package/es/filter/filter-column/long-text.js +28 -0
- package/es/filter/filter-column/multiple-select.js +64 -0
- package/es/filter/filter-column/number.js +97 -0
- package/es/filter/filter-column/single-select.js +45 -0
- package/es/filter/filter-column/text.js +60 -0
- package/es/filter/filter-row.js +233 -0
- package/es/group/core.js +116 -0
- package/es/group/group-row.js +402 -0
- package/es/index.js +63 -11
- package/es/link/core.js +78 -0
- package/es/number.js +21 -0
- package/es/row/core.js +180 -0
- package/es/sort/core.js +91 -0
- package/es/sort/sort-column/array.js +72 -0
- package/es/sort/sort-column/checkbox.js +22 -0
- package/es/sort/sort-column/collaborator.js +16 -0
- package/es/sort/sort-column/date.js +25 -0
- package/es/sort/sort-column/formula.js +49 -0
- package/es/sort/sort-column/link.js +32 -0
- package/es/sort/sort-column/multiple-select.js +45 -0
- package/es/sort/sort-column/number.js +25 -0
- package/es/sort/sort-column/single-select.js +30 -0
- package/es/sort/sort-column/text.js +61 -0
- package/es/sort/sort-row.js +110 -0
- package/es/table/column.js +27 -0
- package/es/table/core.js +14 -0
- package/es/table/row.js +25 -0
- package/es/validate/filter.js +1 -1
- package/es/validate/geolocation.js +5 -0
- package/es/view/core.js +134 -0
- package/es/view/formula.js +147 -0
- package/es/view/group.js +32 -0
- package/es/view/summaries.js +167 -0
- package/lib/cell-value-get/cell-value.js +254 -19
- package/lib/cell-value-get/collaborator.js +16 -2
- package/lib/cell-value-get/digital-sign.js +1 -1
- package/lib/cell-value-get/duration.js +3 -2
- package/lib/cell-value-get/geolocation.js +53 -30
- package/lib/cell-value-get/long-text.js +1 -1
- package/lib/cell-value-get/number.js +51 -18
- package/lib/cell-value-get/option.js +34 -8
- package/lib/cell-value-get/rate.js +15 -0
- package/lib/cell-value-set/date.js +30 -0
- package/lib/cell-value-set/number.js +53 -0
- package/lib/color/column-color.js +446 -0
- package/lib/color/gradient-color.js +110 -0
- package/lib/color/row-color.js +297 -0
- package/lib/column/{common.js → core.js} +1 -14
- package/lib/column/date.js +2 -2
- package/lib/column/number.js +3 -3
- package/lib/column/option.js +153 -0
- package/lib/common.js +27 -3
- package/lib/constants/color.js +20 -0
- package/lib/constants/column-permission.js +11 -0
- package/lib/constants/column.js +134 -1
- package/lib/constants/filter/index.js +5 -0
- package/lib/constants/formula.js +2 -0
- package/lib/constants/grid-header.js +10 -0
- package/lib/constants/group.js +36 -0
- package/lib/constants/limit.js +7 -0
- package/lib/constants/reg.js +9 -0
- package/lib/constants/row-color.js +17 -0
- package/lib/constants/sort.js +18 -0
- package/lib/filter/core.js +336 -0
- package/lib/filter/filter-column/array.js +91 -0
- package/lib/filter/filter-column/checkbox.js +18 -0
- package/lib/filter/filter-column/collaborator.js +80 -0
- package/lib/filter/filter-column/creator.js +63 -0
- package/lib/filter/filter-column/date.js +106 -0
- package/lib/filter/filter-column/digital-sign.js +33 -0
- package/lib/filter/filter-column/file.js +31 -0
- package/lib/filter/filter-column/formula.js +61 -0
- package/lib/filter/filter-column/geolocation.js +62 -0
- package/lib/filter/filter-column/link.js +24 -0
- package/lib/filter/filter-column/long-text.js +32 -0
- package/lib/filter/filter-column/multiple-select.js +72 -0
- package/lib/filter/filter-column/number.js +101 -0
- package/lib/filter/filter-column/single-select.js +49 -0
- package/lib/filter/filter-column/text.js +64 -0
- package/lib/filter/filter-row.js +239 -0
- package/lib/group/core.js +126 -0
- package/lib/group/group-row.js +413 -0
- package/lib/index.js +177 -7
- package/lib/link/core.js +90 -0
- package/lib/number.js +26 -0
- package/lib/row/core.js +189 -0
- package/lib/sort/core.js +102 -0
- package/lib/sort/sort-column/array.js +76 -0
- package/lib/sort/sort-column/checkbox.js +26 -0
- package/lib/sort/sort-column/collaborator.js +20 -0
- package/lib/sort/sort-column/date.js +29 -0
- package/lib/sort/sort-column/formula.js +53 -0
- package/lib/sort/sort-column/link.js +36 -0
- package/lib/sort/sort-column/multiple-select.js +49 -0
- package/lib/sort/sort-column/number.js +29 -0
- package/lib/sort/sort-column/single-select.js +34 -0
- package/lib/sort/sort-column/text.js +66 -0
- package/lib/sort/sort-row.js +115 -0
- package/lib/table/column.js +32 -0
- package/lib/table/core.js +18 -0
- package/lib/table/row.js +30 -0
- package/lib/validate/filter.js +3 -3
- package/lib/validate/geolocation.js +9 -0
- package/lib/view/core.js +143 -0
- package/lib/view/formula.js +154 -0
- package/lib/view/group.js +36 -0
- package/lib/view/summaries.js +173 -0
- package/package.json +5 -3
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
6
|
+
|
|
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) {
|
|
14
|
+
var filter_predicate = _ref.filter_predicate;
|
|
15
|
+
switch (filter_predicate) {
|
|
16
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
17
|
+
{
|
|
18
|
+
if (!digitalSignature) return true;
|
|
19
|
+
return !digitalSignature.username || !digitalSignature.sign_time || !digitalSignature.sign_image_url;
|
|
20
|
+
}
|
|
21
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
22
|
+
{
|
|
23
|
+
if (!digitalSignature) return false;
|
|
24
|
+
return !!(digitalSignature.username && digitalSignature.sign_time && digitalSignature.sign_image_url);
|
|
25
|
+
}
|
|
26
|
+
default:
|
|
27
|
+
{
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.digitalSignFilter = digitalSignFilter;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
6
|
+
|
|
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) {
|
|
14
|
+
var filter_predicate = _ref.filter_predicate;
|
|
15
|
+
switch (filter_predicate) {
|
|
16
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
17
|
+
{
|
|
18
|
+
return !(files && files.length > 0);
|
|
19
|
+
}
|
|
20
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
21
|
+
{
|
|
22
|
+
return !!(files && files.length > 0);
|
|
23
|
+
}
|
|
24
|
+
default:
|
|
25
|
+
{
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.fileFilter = fileFilter;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var number = require('./number.js');
|
|
6
|
+
var date = require('./date.js');
|
|
7
|
+
var checkbox = require('./checkbox.js');
|
|
8
|
+
var text = require('./text.js');
|
|
9
|
+
var array = require('./array.js');
|
|
10
|
+
var cellValue = require('../../cell-value-get/cell-value.js');
|
|
11
|
+
var formula = require('../../constants/formula.js');
|
|
12
|
+
|
|
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) {
|
|
22
|
+
var username = _ref.username,
|
|
23
|
+
userId = _ref.userId;
|
|
24
|
+
var data = filter.column.data;
|
|
25
|
+
var _ref2 = data || {},
|
|
26
|
+
result_type = _ref2.result_type;
|
|
27
|
+
switch (result_type) {
|
|
28
|
+
case formula.FORMULA_RESULT_TYPE.NUMBER:
|
|
29
|
+
{
|
|
30
|
+
return number.numberFilter(computedValue, filter);
|
|
31
|
+
}
|
|
32
|
+
case formula.FORMULA_RESULT_TYPE.DATE:
|
|
33
|
+
{
|
|
34
|
+
return date.dateFilter(computedValue, filter);
|
|
35
|
+
}
|
|
36
|
+
case formula.FORMULA_RESULT_TYPE.BOOL:
|
|
37
|
+
{
|
|
38
|
+
var normalizedCellValue = computedValue;
|
|
39
|
+
if (computedValue === 'true') {
|
|
40
|
+
normalizedCellValue = true;
|
|
41
|
+
} else if (computedValue === 'false') {
|
|
42
|
+
normalizedCellValue = false;
|
|
43
|
+
}
|
|
44
|
+
return checkbox.checkboxFilter(normalizedCellValue, filter);
|
|
45
|
+
}
|
|
46
|
+
case formula.FORMULA_RESULT_TYPE.ARRAY:
|
|
47
|
+
{
|
|
48
|
+
return array.filterByArrayType(computedValue, filter, {
|
|
49
|
+
username: username,
|
|
50
|
+
userId: userId
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
default:
|
|
54
|
+
{
|
|
55
|
+
// FORMULA_RESULT_TYPE.STRING
|
|
56
|
+
return text.textFilter(cellValue.getFormulaDisplayString(computedValue, data) || '', filter, userId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.formulaFilter = formulaFilter;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var geolocation = require('../../cell-value-get/geolocation.js');
|
|
6
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
7
|
+
|
|
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) {
|
|
17
|
+
var filter_predicate = _ref.filter_predicate,
|
|
18
|
+
filter_term = _ref.filter_term,
|
|
19
|
+
column = _ref.column;
|
|
20
|
+
var geolocation$1 = geolocation.getGeolocationDisplayString(location, column.data);
|
|
21
|
+
switch (filter_predicate) {
|
|
22
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.CONTAINS:
|
|
23
|
+
{
|
|
24
|
+
if (!filter_term) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
if (!geolocation$1) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return geolocation$1.toString().toLowerCase().indexOf(filter_term.toLowerCase()) > -1;
|
|
31
|
+
}
|
|
32
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_CONTAIN:
|
|
33
|
+
{
|
|
34
|
+
if (!filter_term || !geolocation$1) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return geolocation$1.toString().toLowerCase().indexOf(filter_term.toLowerCase()) < 0;
|
|
38
|
+
}
|
|
39
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
40
|
+
{
|
|
41
|
+
return !filter_term || geolocation$1 === filter_term;
|
|
42
|
+
}
|
|
43
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
44
|
+
{
|
|
45
|
+
return !filter_term || geolocation$1 !== filter_term;
|
|
46
|
+
}
|
|
47
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
48
|
+
{
|
|
49
|
+
return !geolocation$1;
|
|
50
|
+
}
|
|
51
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
52
|
+
{
|
|
53
|
+
return !!geolocation$1;
|
|
54
|
+
}
|
|
55
|
+
default:
|
|
56
|
+
{
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.geolocationFilter = geolocationFilter;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var array = require('./array.js');
|
|
6
|
+
|
|
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) {
|
|
16
|
+
var username = _ref.username,
|
|
17
|
+
userId = _ref.userId;
|
|
18
|
+
return array.filterByArrayType(linkedCellValues, filter, {
|
|
19
|
+
username: username,
|
|
20
|
+
userId: userId
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.linkFilter = linkFilter;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
6
|
+
|
|
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) {
|
|
14
|
+
var filter_predicate = _ref.filter_predicate;
|
|
15
|
+
var text = longText ? longText.text : null;
|
|
16
|
+
switch (filter_predicate) {
|
|
17
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
18
|
+
{
|
|
19
|
+
return !text;
|
|
20
|
+
}
|
|
21
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
22
|
+
{
|
|
23
|
+
return !!text;
|
|
24
|
+
}
|
|
25
|
+
default:
|
|
26
|
+
{
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.longTextFilter = longTextFilter;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
6
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
11
|
+
|
|
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) {
|
|
20
|
+
var filter_predicate = _ref.filter_predicate,
|
|
21
|
+
filter_term = _ref.filter_term;
|
|
22
|
+
switch (filter_predicate) {
|
|
23
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_ANY_OF:
|
|
24
|
+
{
|
|
25
|
+
return filter_term.length === 0 || Array.isArray(optionIds) && optionIds.some(function (optionId) {
|
|
26
|
+
return filter_term.includes(optionId);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_ALL_OF:
|
|
30
|
+
{
|
|
31
|
+
return filter_term.length === 0 || Array.isArray(optionIds) && filter_term.every(function (optionId) {
|
|
32
|
+
return optionIds.includes(optionId);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.HAS_NONE_OF:
|
|
36
|
+
{
|
|
37
|
+
if (filter_term.length === 0 || !Array.isArray(optionIds) || optionIds.length === 0) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return filter_term.every(function (optionId) {
|
|
41
|
+
return optionIds.indexOf(optionId) < 0;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_EXACTLY:
|
|
45
|
+
{
|
|
46
|
+
if (filter_term.length === 0) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
if (!Array.isArray(optionIds)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
var uniqueArr = function uniqueArr(arr) {
|
|
53
|
+
return _toConsumableArray__default["default"](new Set(arr)).sort();
|
|
54
|
+
};
|
|
55
|
+
return uniqueArr(optionIds).toString() === uniqueArr(filter_term).toString();
|
|
56
|
+
}
|
|
57
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
58
|
+
{
|
|
59
|
+
return !Array.isArray(optionIds) || optionIds.length === 0;
|
|
60
|
+
}
|
|
61
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
62
|
+
{
|
|
63
|
+
return Array.isArray(optionIds) && optionIds.length > 0;
|
|
64
|
+
}
|
|
65
|
+
default:
|
|
66
|
+
{
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
exports.multipleSelectFilter = multipleSelectFilter;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var number = require('../../number.js');
|
|
6
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
7
|
+
|
|
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) {
|
|
16
|
+
var filter_predicate = _ref.filter_predicate,
|
|
17
|
+
filter_term = _ref.filter_term;
|
|
18
|
+
switch (filter_predicate) {
|
|
19
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EQUAL:
|
|
20
|
+
{
|
|
21
|
+
if (!filter_term && filter_term !== 0) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (!number$1 && number$1 !== 0) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return number.isNumberEqual(filter_term, number$1);
|
|
28
|
+
}
|
|
29
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EQUAL:
|
|
30
|
+
{
|
|
31
|
+
if (!filter_term && filter_term !== 0 || !number$1 && number$1 !== 0) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return !number.isNumberEqual(filter_term, number$1);
|
|
35
|
+
}
|
|
36
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.LESS:
|
|
37
|
+
{
|
|
38
|
+
if (!filter_term && filter_term !== 0) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return number$1 < filter_term;
|
|
45
|
+
}
|
|
46
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER:
|
|
47
|
+
{
|
|
48
|
+
if (!filter_term && filter_term !== 0) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
if (!number$1 && number$1 !== 0 || number.isNumberEqual(number$1, filter_term)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return number$1 > filter_term;
|
|
55
|
+
}
|
|
56
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.LESS_OR_EQUAL:
|
|
57
|
+
{
|
|
58
|
+
if (!filter_term && filter_term !== 0) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
if (!number$1 && number$1 !== 0) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (number.isNumberEqual(number$1, filter_term)) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return number$1 < filter_term;
|
|
68
|
+
}
|
|
69
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.GREATER_OR_EQUAL:
|
|
70
|
+
{
|
|
71
|
+
if (!filter_term && filter_term !== 0) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (!number$1 && number$1 !== 0) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return number.isNumberEqual(number$1, filter_term) || number$1 > filter_term;
|
|
78
|
+
}
|
|
79
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
80
|
+
{
|
|
81
|
+
if (number$1 === 0) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return !number$1 || typeof number$1 !== 'number';
|
|
85
|
+
}
|
|
86
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
87
|
+
{
|
|
88
|
+
// must be a number
|
|
89
|
+
if (number$1 === 0) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return !!(number$1 && typeof number$1 === 'number');
|
|
93
|
+
}
|
|
94
|
+
default:
|
|
95
|
+
{
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
exports.numberFilter = numberFilter;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
6
|
+
|
|
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) {
|
|
15
|
+
var filter_predicate = _ref.filter_predicate,
|
|
16
|
+
filter_term = _ref.filter_term;
|
|
17
|
+
switch (filter_predicate) {
|
|
18
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
19
|
+
{
|
|
20
|
+
return !filter_term || optionId === filter_term;
|
|
21
|
+
}
|
|
22
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
23
|
+
{
|
|
24
|
+
return !filter_term || optionId !== filter_term;
|
|
25
|
+
}
|
|
26
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_ANY_OF:
|
|
27
|
+
{
|
|
28
|
+
return filter_term.length === 0 || filter_term.includes(optionId);
|
|
29
|
+
}
|
|
30
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NONE_OF:
|
|
31
|
+
{
|
|
32
|
+
return filter_term.length === 0 || filter_term.indexOf(optionId) < 0;
|
|
33
|
+
}
|
|
34
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
35
|
+
{
|
|
36
|
+
return !optionId;
|
|
37
|
+
}
|
|
38
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
39
|
+
{
|
|
40
|
+
return !!optionId;
|
|
41
|
+
}
|
|
42
|
+
default:
|
|
43
|
+
{
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
exports.singleSelectFilter = singleSelectFilter;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var filterPredicate = require('../../constants/filter/filter-predicate.js');
|
|
6
|
+
|
|
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) {
|
|
16
|
+
var filter_predicate = _ref.filter_predicate,
|
|
17
|
+
filter_term = _ref.filter_term;
|
|
18
|
+
switch (filter_predicate) {
|
|
19
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.CONTAINS:
|
|
20
|
+
{
|
|
21
|
+
if (!filter_term) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (!text) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) > -1;
|
|
28
|
+
}
|
|
29
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_CONTAIN:
|
|
30
|
+
{
|
|
31
|
+
if (!filter_term || !text) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return text.toString().toLowerCase().indexOf(filter_term.toLowerCase()) < 0;
|
|
35
|
+
}
|
|
36
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS:
|
|
37
|
+
{
|
|
38
|
+
return !filter_term || text === filter_term;
|
|
39
|
+
}
|
|
40
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_NOT:
|
|
41
|
+
{
|
|
42
|
+
return !filter_term || text !== filter_term;
|
|
43
|
+
}
|
|
44
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.EMPTY:
|
|
45
|
+
{
|
|
46
|
+
return !text;
|
|
47
|
+
}
|
|
48
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
49
|
+
{
|
|
50
|
+
return !!text;
|
|
51
|
+
}
|
|
52
|
+
case filterPredicate.FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID:
|
|
53
|
+
{
|
|
54
|
+
if (!userId) return false;
|
|
55
|
+
return text === userId;
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
{
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
exports.textFilter = textFilter;
|