dtable-utils 0.0.3-beta.1 → 0.0.3
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 -30
- package/dist/index.js +1 -1
- package/es/cell-value-get/cell-value.js +19 -227
- package/es/cell-value-get/collaborator.js +3 -9
- package/es/cell-value-get/digital-sign.js +1 -1
- package/es/cell-value-get/duration.js +1 -1
- package/es/cell-value-get/geolocation.js +5 -29
- package/es/cell-value-get/long-text.js +1 -1
- package/es/cell-value-get/number.js +18 -42
- package/es/cell-value-get/option.js +7 -17
- package/es/cell-value-set/number.js +1 -53
- package/es/column/{core.js → common.js} +14 -2
- package/es/column/date.js +1 -1
- package/es/column/number.js +1 -1
- package/es/common.js +10 -9
- package/es/constants/column.js +2 -127
- package/es/constants/filter/index.js +1 -5
- package/es/date.js +1 -1
- package/es/index.js +10 -62
- package/es/validate/filter.js +1 -1
- package/lib/cell-value-get/cell-value.js +18 -231
- package/lib/cell-value-get/collaborator.js +2 -9
- package/lib/cell-value-get/digital-sign.js +1 -1
- package/lib/cell-value-get/duration.js +1 -0
- package/lib/cell-value-get/geolocation.js +5 -30
- package/lib/cell-value-get/long-text.js +1 -1
- package/lib/cell-value-get/number.js +17 -42
- package/lib/cell-value-get/option.js +6 -18
- package/lib/cell-value-set/number.js +0 -53
- package/lib/column/{core.js → common.js} +14 -1
- package/lib/column/date.js +2 -2
- package/lib/column/number.js +3 -3
- package/lib/common.js +11 -13
- package/lib/constants/column.js +1 -134
- package/lib/constants/filter/index.js +0 -5
- package/lib/index.js +8 -176
- package/lib/validate/filter.js +3 -3
- package/package.json +3 -5
- package/es/cell-value-get/rate.js +0 -6
- package/es/cell-value-set/date.js +0 -20
- package/es/color/gradient-color.js +0 -100
- package/es/column/color.js +0 -415
- package/es/column/option.js +0 -115
- package/es/constants/color.js +0 -16
- package/es/constants/column-permission.js +0 -7
- package/es/constants/grid-header.js +0 -6
- package/es/constants/group.js +0 -23
- package/es/constants/limit.js +0 -3
- package/es/constants/reg.js +0 -4
- package/es/constants/row-color.js +0 -11
- package/es/constants/sort.js +0 -11
- package/es/filter/core.js +0 -287
- package/es/filter/filter-column/array.js +0 -82
- package/es/filter/filter-column/checkbox.js +0 -8
- package/es/filter/filter-column/collaborator.js +0 -67
- package/es/filter/filter-column/creator.js +0 -50
- package/es/filter/filter-column/date.js +0 -59
- package/es/filter/filter-column/digital-sign.js +0 -26
- package/es/filter/filter-column/file.js +0 -24
- package/es/filter/filter-column/formula.js +0 -49
- package/es/filter/filter-column/geolocation.js +0 -53
- package/es/filter/filter-column/link.js +0 -12
- package/es/filter/filter-column/long-text.js +0 -25
- package/es/filter/filter-column/multiple-select.js +0 -60
- package/es/filter/filter-column/number.js +0 -93
- package/es/filter/filter-column/single-select.js +0 -41
- package/es/filter/filter-column/text.js +0 -55
- package/es/filter/filter-row.js +0 -198
- package/es/group/core.js +0 -107
- package/es/group/group-row.js +0 -366
- package/es/link/core.js +0 -78
- package/es/number.js +0 -13
- package/es/row/color.js +0 -278
- package/es/row/core.js +0 -161
- package/es/sort/core.js +0 -32
- package/es/sort/sort-column/array.js +0 -63
- package/es/sort/sort-column/checkbox.js +0 -15
- package/es/sort/sort-column/collaborator.js +0 -9
- package/es/sort/sort-column/date.js +0 -25
- package/es/sort/sort-column/formula.js +0 -40
- package/es/sort/sort-column/link.js +0 -23
- package/es/sort/sort-column/multiple-select.js +0 -45
- package/es/sort/sort-column/number.js +0 -18
- package/es/sort/sort-column/single-select.js +0 -22
- package/es/sort/sort-column/text.js +0 -47
- package/es/sort/sort-row.js +0 -126
- package/es/table/column.js +0 -27
- package/es/table/core.js +0 -14
- package/es/table/index.js +0 -14
- package/es/table/row.js +0 -25
- package/es/validate/geolocation.js +0 -5
- package/es/view/core.js +0 -135
- package/es/view/formula.js +0 -143
- package/es/view/group.js +0 -32
- package/es/view/summaries.js +0 -179
- package/lib/cell-value-get/rate.js +0 -10
- package/lib/cell-value-set/date.js +0 -24
- package/lib/color/gradient-color.js +0 -110
- package/lib/column/color.js +0 -424
- package/lib/column/option.js +0 -123
- package/lib/constants/color.js +0 -20
- package/lib/constants/column-permission.js +0 -11
- package/lib/constants/grid-header.js +0 -10
- package/lib/constants/group.js +0 -36
- package/lib/constants/limit.js +0 -7
- package/lib/constants/reg.js +0 -9
- package/lib/constants/row-color.js +0 -17
- package/lib/constants/sort.js +0 -18
- package/lib/filter/core.js +0 -301
- package/lib/filter/filter-column/array.js +0 -86
- package/lib/filter/filter-column/checkbox.js +0 -12
- package/lib/filter/filter-column/collaborator.js +0 -75
- package/lib/filter/filter-column/creator.js +0 -54
- package/lib/filter/filter-column/date.js +0 -63
- package/lib/filter/filter-column/digital-sign.js +0 -30
- package/lib/filter/filter-column/file.js +0 -28
- package/lib/filter/filter-column/formula.js +0 -53
- package/lib/filter/filter-column/geolocation.js +0 -57
- package/lib/filter/filter-column/link.js +0 -16
- package/lib/filter/filter-column/long-text.js +0 -29
- package/lib/filter/filter-column/multiple-select.js +0 -68
- package/lib/filter/filter-column/number.js +0 -97
- package/lib/filter/filter-column/single-select.js +0 -45
- package/lib/filter/filter-column/text.js +0 -59
- package/lib/filter/filter-row.js +0 -204
- package/lib/group/core.js +0 -117
- package/lib/group/group-row.js +0 -377
- package/lib/link/core.js +0 -90
- package/lib/number.js +0 -18
- package/lib/row/color.js +0 -286
- package/lib/row/core.js +0 -170
- package/lib/sort/core.js +0 -37
- package/lib/sort/sort-column/array.js +0 -67
- package/lib/sort/sort-column/checkbox.js +0 -19
- package/lib/sort/sort-column/collaborator.js +0 -13
- package/lib/sort/sort-column/date.js +0 -29
- package/lib/sort/sort-column/formula.js +0 -44
- package/lib/sort/sort-column/link.js +0 -27
- package/lib/sort/sort-column/multiple-select.js +0 -50
- package/lib/sort/sort-column/number.js +0 -22
- package/lib/sort/sort-column/single-select.js +0 -26
- package/lib/sort/sort-column/text.js +0 -52
- package/lib/sort/sort-row.js +0 -136
- package/lib/table/column.js +0 -32
- package/lib/table/core.js +0 -18
- package/lib/table/index.js +0 -18
- package/lib/table/row.js +0 -30
- package/lib/validate/geolocation.js +0 -9
- package/lib/view/core.js +0 -144
- package/lib/view/formula.js +0 -150
- package/lib/view/group.js +0 -36
- package/lib/view/summaries.js +0 -185
package/es/constants/reg.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { CellType } from './cell-type.js';
|
|
2
|
-
|
|
3
|
-
var ROW_COLOR_TYPE = {
|
|
4
|
-
BY_COLUMN: 'by_column',
|
|
5
|
-
BY_RULES: 'by_rules',
|
|
6
|
-
BY_DUPLICATE_VALUES: 'by_duplicate_values'
|
|
7
|
-
};
|
|
8
|
-
var SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES = [CellType.TEXT, CellType.NUMBER, CellType.DATE, CellType.DURATION, CellType.EMAIL, CellType.URL, CellType.RATE, CellType.CHECKBOX, CellType.COLLABORATOR, CellType.SINGLE_SELECT, CellType.MULTIPLE_SELECT, CellType.GEOLOCATION, CellType.FORMULA, CellType.CREATOR, CellType.LAST_MODIFIER];
|
|
9
|
-
var ROW_COLOR_FOR_DUPLICATE_VALUES = '#F4667C';
|
|
10
|
-
|
|
11
|
-
export { ROW_COLOR_FOR_DUPLICATE_VALUES, ROW_COLOR_TYPE, SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES };
|
package/es/constants/sort.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { CellType } from './cell-type.js';
|
|
2
|
-
|
|
3
|
-
var SORT_TYPE = {
|
|
4
|
-
UP: 'up',
|
|
5
|
-
DOWN: 'down'
|
|
6
|
-
};
|
|
7
|
-
var SORT_COLUMN_OPTIONS = [CellType.DATE, CellType.CTIME, CellType.MTIME, CellType.SINGLE_SELECT, CellType.TEXT, CellType.NUMBER, CellType.FORMULA, CellType.LINK_FORMULA, CellType.AUTO_NUMBER, CellType.COLLABORATOR, CellType.DURATION, CellType.URL, CellType.EMAIL, CellType.CHECKBOX, CellType.MULTIPLE_SELECT, CellType.LINK, CellType.RATE];
|
|
8
|
-
var TEXT_SORTER_COLUMN_TYPES = [CellType.TEXT, CellType.URL, CellType.EMAIL];
|
|
9
|
-
var NUMBER_SORTER_COLUMN_TYPES = [CellType.NUMBER, CellType.DURATION, CellType.RATE];
|
|
10
|
-
|
|
11
|
-
export { NUMBER_SORTER_COLUMN_TYPES, SORT_COLUMN_OPTIONS, SORT_TYPE, TEXT_SORTER_COLUMN_TYPES };
|
package/es/filter/core.js
DELETED
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import { ValidateFilter } from '../validate/filter.js';
|
|
3
|
-
import { DateUtils } from '../date.js';
|
|
4
|
-
import { FILTER_ERR_MSG } from '../constants/filter/index.js';
|
|
5
|
-
import { CellType } from '../constants/cell-type.js';
|
|
6
|
-
import { FORMULA_RESULT_TYPE } from '../constants/formula.js';
|
|
7
|
-
import { FILTER_TERM_MODIFIER_TYPE } from '../constants/filter/filter-modifier.js';
|
|
8
|
-
|
|
9
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
-
var EXACT_DATE_TERM_MODIFIER_TYPES = [FILTER_TERM_MODIFIER_TYPE.TODAY, FILTER_TERM_MODIFIER_TYPE.TOMORROW, FILTER_TERM_MODIFIER_TYPE.YESTERDAY, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_AGO, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_AGO, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_AGO, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_FROM_NOW, FILTER_TERM_MODIFIER_TYPE.EXACT_DATE];
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* get filters which excludes incomplete
|
|
15
|
-
* @param {array} filters [{ column_key: '', filter_predicate: '' }]
|
|
16
|
-
* @param {array} columns
|
|
17
|
-
* @returns array
|
|
18
|
-
*/
|
|
19
|
-
var getValidFilters = function getValidFilters(filters, columns) {
|
|
20
|
-
if (!Array.isArray(filters) || !Array.isArray(columns)) {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
return filters.filter(function (filter) {
|
|
24
|
-
var _ValidateFilter$valid = ValidateFilter.validate(filter, columns),
|
|
25
|
-
error_message = _ValidateFilter$valid.error_message;
|
|
26
|
-
return !error_message || error_message !== FILTER_ERR_MSG.INCOMPLETE_FILTER;
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* get filters without error messages
|
|
32
|
-
* @param {array} filters [{ column_key: '', filter_predicate: '' }]
|
|
33
|
-
* @param {array} columns
|
|
34
|
-
* @returns array
|
|
35
|
-
*/
|
|
36
|
-
var getValidFiltersWithoutError = function getValidFiltersWithoutError(filters, columns) {
|
|
37
|
-
if (!Array.isArray(filters) || !Array.isArray(columns)) {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
return filters.filter(function (filter) {
|
|
41
|
-
return !ValidateFilter.validate(filter, columns).error_message;
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var otherDate = function otherDate(filterTermModifier, filterTerm) {
|
|
45
|
-
var today = new Date();
|
|
46
|
-
var year = today.getFullYear();
|
|
47
|
-
var month = today.getMonth(); // use js month representation: 0 - 11
|
|
48
|
-
var day = today.getDate();
|
|
49
|
-
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
50
|
-
// 0 1 2 3 4 5 6 7 8 9 10 11
|
|
51
|
-
days[1] = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0) ? 29 : 28; // is leap year
|
|
52
|
-
switch (filterTermModifier) {
|
|
53
|
-
case FILTER_TERM_MODIFIER_TYPE.TODAY:
|
|
54
|
-
{
|
|
55
|
-
// today, should start at 0:00 and end at 24:00
|
|
56
|
-
return new Date(year, month, day, 0, 0, 0);
|
|
57
|
-
}
|
|
58
|
-
case FILTER_TERM_MODIFIER_TYPE.TOMORROW:
|
|
59
|
-
{
|
|
60
|
-
return new Date(year, month, day + 1);
|
|
61
|
-
}
|
|
62
|
-
case FILTER_TERM_MODIFIER_TYPE.YESTERDAY:
|
|
63
|
-
{
|
|
64
|
-
return new Date(year, month, day - 1);
|
|
65
|
-
}
|
|
66
|
-
case FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_AGO:
|
|
67
|
-
{
|
|
68
|
-
return new Date(year, month, day - 7);
|
|
69
|
-
}
|
|
70
|
-
case FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_FROM_NOW:
|
|
71
|
-
{
|
|
72
|
-
return new Date(year, month, day + 7);
|
|
73
|
-
}
|
|
74
|
-
case FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_AGO:
|
|
75
|
-
{
|
|
76
|
-
var pastMonth = month - 1;
|
|
77
|
-
var monthDaysIndex = month === 0 ? 11 : pastMonth;
|
|
78
|
-
var currentDay = day > days[monthDaysIndex] ? days[monthDaysIndex] : day;
|
|
79
|
-
return new Date(year, pastMonth, currentDay);
|
|
80
|
-
}
|
|
81
|
-
case FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_FROM_NOW:
|
|
82
|
-
{
|
|
83
|
-
var nextMonth = month + 1;
|
|
84
|
-
var _monthDaysIndex = month === 11 ? 0 : nextMonth;
|
|
85
|
-
var _currentDay = day > days[_monthDaysIndex] ? days[_monthDaysIndex] : day;
|
|
86
|
-
return new Date(year, nextMonth, _currentDay);
|
|
87
|
-
}
|
|
88
|
-
case FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_AGO:
|
|
89
|
-
{
|
|
90
|
-
return new Date(year, month, day - Number(filterTerm));
|
|
91
|
-
}
|
|
92
|
-
case FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_FROM_NOW:
|
|
93
|
-
{
|
|
94
|
-
return new Date(year, month, day + Number(filterTerm));
|
|
95
|
-
}
|
|
96
|
-
case FILTER_TERM_MODIFIER_TYPE.EXACT_DATE:
|
|
97
|
-
{
|
|
98
|
-
return new Date(filterTerm);
|
|
99
|
-
}
|
|
100
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_PAST_WEEK:
|
|
101
|
-
{
|
|
102
|
-
var weekDay = today.getDay() !== 0 ? today.getDay() : 7;
|
|
103
|
-
return {
|
|
104
|
-
startDate: new Date(year, month, day - weekDay - 6),
|
|
105
|
-
endDate: new Date(year, month, day - weekDay)
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
case FILTER_TERM_MODIFIER_TYPE.THIS_WEEK:
|
|
109
|
-
{
|
|
110
|
-
var _weekDay = today.getDay() !== 0 ? today.getDay() : 7;
|
|
111
|
-
return {
|
|
112
|
-
startDate: new Date(year, month, day - _weekDay + 1),
|
|
113
|
-
endDate: new Date(year, month, day - _weekDay + 7)
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_NEXT_WEEK:
|
|
117
|
-
{
|
|
118
|
-
var _weekDay2 = today.getDay() !== 0 ? today.getDay() : 7;
|
|
119
|
-
return {
|
|
120
|
-
startDate: new Date(year, month, day - _weekDay2 + 8),
|
|
121
|
-
endDate: new Date(year, month, day - _weekDay2 + 14)
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_PAST_MONTH:
|
|
125
|
-
{
|
|
126
|
-
var _pastMonth = month - 1;
|
|
127
|
-
return {
|
|
128
|
-
startDate: new Date(year, _pastMonth, 1),
|
|
129
|
-
endDate: new Date(year, _pastMonth, days[month === 0 ? 11 : _pastMonth])
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
case FILTER_TERM_MODIFIER_TYPE.THIS_MONTH:
|
|
133
|
-
{
|
|
134
|
-
return {
|
|
135
|
-
startDate: new Date(year, month, 1),
|
|
136
|
-
endDate: new Date(year, month, days[month])
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_NEXT_MONTH:
|
|
140
|
-
{
|
|
141
|
-
var _nextMonth = month + 1;
|
|
142
|
-
return {
|
|
143
|
-
startDate: new Date(year, _nextMonth, 1),
|
|
144
|
-
endDate: new Date(year, _nextMonth, month === 11 ? days[0] : days[_nextMonth])
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_PAST_YEAR:
|
|
148
|
-
{
|
|
149
|
-
var pastYear = year - 1;
|
|
150
|
-
return {
|
|
151
|
-
startDate: new Date(pastYear, 0, 1),
|
|
152
|
-
// The computer's month starts at 0.
|
|
153
|
-
endDate: new Date(pastYear, 11, 31)
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
case FILTER_TERM_MODIFIER_TYPE.THIS_YEAR:
|
|
157
|
-
{
|
|
158
|
-
return {
|
|
159
|
-
startDate: new Date(year, 0, 1),
|
|
160
|
-
endDate: new Date(year, 11, 31)
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_NEXT_YEAR:
|
|
164
|
-
{
|
|
165
|
-
var nextYear = year + 1;
|
|
166
|
-
return {
|
|
167
|
-
startDate: new Date(nextYear, 0, 1),
|
|
168
|
-
endDate: new Date(nextYear, 11, 31)
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_NEXT_NUMBERS_OF_DAYS:
|
|
172
|
-
{
|
|
173
|
-
return {
|
|
174
|
-
startDate: new Date(year, month, day + 1, 0, 0, 0),
|
|
175
|
-
endDate: new Date(year, month, day + Number(filterTerm))
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
case FILTER_TERM_MODIFIER_TYPE.THE_PAST_NUMBERS_OF_DAYS:
|
|
179
|
-
{
|
|
180
|
-
return {
|
|
181
|
-
startDate: new Date(year, month, day - Number(filterTerm)),
|
|
182
|
-
endDate: new Date(year, month, day, 0, 0, 0)
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
default:
|
|
186
|
-
{
|
|
187
|
-
return {};
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
var getFormattedFilterOtherDate = function getFormattedFilterOtherDate(filterTermModifier, filterTerm) {
|
|
192
|
-
var _otherDate = otherDate(filterTermModifier, filterTerm);
|
|
193
|
-
if (EXACT_DATE_TERM_MODIFIER_TYPES.includes(filterTermModifier)) {
|
|
194
|
-
return DateUtils.format(_otherDate);
|
|
195
|
-
}
|
|
196
|
-
var _ref = _otherDate || {},
|
|
197
|
-
startDate = _ref.startDate,
|
|
198
|
-
endDate = _ref.endDate;
|
|
199
|
-
return {
|
|
200
|
-
startDate: DateUtils.format(startDate),
|
|
201
|
-
endDate: DateUtils.format(endDate)
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
|
-
var getFormattedFilter = function getFormattedFilter(filter, column) {
|
|
205
|
-
var filter_term = filter.filter_term,
|
|
206
|
-
filter_term_modifier = filter.filter_term_modifier;
|
|
207
|
-
var columnType = column.type,
|
|
208
|
-
columnData = column.data;
|
|
209
|
-
var formattedFilter = filter;
|
|
210
|
-
switch (columnType) {
|
|
211
|
-
case CellType.FORMULA:
|
|
212
|
-
case CellType.LINK_FORMULA:
|
|
213
|
-
{
|
|
214
|
-
var result_type = columnData.result_type,
|
|
215
|
-
array_type = columnData.array_type,
|
|
216
|
-
array_data = columnData.array_data;
|
|
217
|
-
if (result_type === FORMULA_RESULT_TYPE.DATE) {
|
|
218
|
-
formattedFilter.other_date = getFormattedFilterOtherDate(filter_term_modifier, filter_term);
|
|
219
|
-
} else if (result_type === FORMULA_RESULT_TYPE.ARRAY) {
|
|
220
|
-
var linkedColumn = {
|
|
221
|
-
type: array_type,
|
|
222
|
-
data: array_data
|
|
223
|
-
};
|
|
224
|
-
formattedFilter.linked_column = linkedColumn;
|
|
225
|
-
formattedFilter = getFormattedFilter(formattedFilter, linkedColumn);
|
|
226
|
-
}
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
case CellType.DATE:
|
|
230
|
-
case CellType.CTIME:
|
|
231
|
-
case CellType.MTIME:
|
|
232
|
-
{
|
|
233
|
-
formattedFilter.other_date = getFormattedFilterOtherDate(filter_term_modifier, filter_term);
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
case CellType.LINK:
|
|
237
|
-
{
|
|
238
|
-
var _ref2 = columnData || {},
|
|
239
|
-
_array_type = _ref2.array_type,
|
|
240
|
-
_array_data = _ref2.array_data;
|
|
241
|
-
var _linkedColumn = {
|
|
242
|
-
type: _array_type,
|
|
243
|
-
data: _array_data
|
|
244
|
-
};
|
|
245
|
-
var filterColumnData = _objectSpread(_objectSpread({}, columnData), {}, {
|
|
246
|
-
result_type: FORMULA_RESULT_TYPE.ARRAY
|
|
247
|
-
});
|
|
248
|
-
var filterColumn = _objectSpread(_objectSpread({}, column), {}, {
|
|
249
|
-
data: filterColumnData
|
|
250
|
-
});
|
|
251
|
-
formattedFilter.column = filterColumn;
|
|
252
|
-
formattedFilter.linked_column = _linkedColumn;
|
|
253
|
-
formattedFilter = getFormattedFilter(formattedFilter, _linkedColumn);
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return formattedFilter;
|
|
258
|
-
};
|
|
259
|
-
var getFormattedFilters = function getFormattedFilters(filters) {
|
|
260
|
-
return filters.map(function (filter) {
|
|
261
|
-
return getFormattedFilter(filter, filter.column);
|
|
262
|
-
});
|
|
263
|
-
};
|
|
264
|
-
var deleteInvalidFilter = function deleteInvalidFilter(filters, columns) {
|
|
265
|
-
var cleanFilters = [];
|
|
266
|
-
filters.forEach(function (filter) {
|
|
267
|
-
var column_key = filter.column_key;
|
|
268
|
-
var _ValidateFilter$valid2 = ValidateFilter.validate(filter, columns),
|
|
269
|
-
error_message = _ValidateFilter$valid2.error_message;
|
|
270
|
-
if (error_message) {
|
|
271
|
-
if (error_message === FILTER_ERR_MSG.INCOMPLETE_FILTER) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
throw new Error(error_message);
|
|
275
|
-
}
|
|
276
|
-
var filterColumn = columns.find(function (column) {
|
|
277
|
-
return column.key === column_key;
|
|
278
|
-
});
|
|
279
|
-
var newFilter = _objectSpread(_objectSpread({}, filter), {}, {
|
|
280
|
-
column: filterColumn
|
|
281
|
-
});
|
|
282
|
-
cleanFilters.push(newFilter);
|
|
283
|
-
});
|
|
284
|
-
return cleanFilters;
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
export { deleteInvalidFilter, getFormattedFilter, getFormattedFilterOtherDate, getFormattedFilters, getValidFilters, getValidFiltersWithoutError, otherDate };
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { getFormulaDisplayString } from '../../cell-value-get/cell-value.js';
|
|
2
|
-
import { isNumericColumn } from '../../column/number.js';
|
|
3
|
-
import { checkboxFilter } from './checkbox.js';
|
|
4
|
-
import { collaboratorFilter } from './collaborator.js';
|
|
5
|
-
import { dateFilter } from './date.js';
|
|
6
|
-
import { textFilter } from './text.js';
|
|
7
|
-
import { multipleSelectFilter } from './multiple-select.js';
|
|
8
|
-
import { numberFilter } from './number.js';
|
|
9
|
-
import { CellType } from '../../constants/cell-type.js';
|
|
10
|
-
import { DATE_COLUMN_OPTIONS, COLLABORATOR_COLUMN_TYPES } from '../../constants/column.js';
|
|
11
|
-
import '../../constants/filter/filter-column-options.js';
|
|
12
|
-
import '../../constants/filter/filter-modifier.js';
|
|
13
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
14
|
-
import '../../constants/filter/filter-is-within.js';
|
|
15
|
-
|
|
16
|
-
var TRUE_VALUE = [true, 'true'];
|
|
17
|
-
var filterByArrayType = function filterByArrayType(cellValue, filter, _ref) {
|
|
18
|
-
var username = _ref.username,
|
|
19
|
-
userId = _ref.userId;
|
|
20
|
-
var column = filter.column,
|
|
21
|
-
linked_column = filter.linked_column;
|
|
22
|
-
var filter_predicate = filter.filter_predicate;
|
|
23
|
-
if (Array.isArray(cellValue)) {
|
|
24
|
-
if (filter_predicate === FILTER_PREDICATE_TYPE.EMPTY) {
|
|
25
|
-
return cellValue.length === 0;
|
|
26
|
-
}
|
|
27
|
-
if (filter_predicate === FILTER_PREDICATE_TYPE.NOT_EMPTY) {
|
|
28
|
-
return cellValue.length > 0;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (!linked_column) {
|
|
32
|
-
return textFilter('', filter, userId);
|
|
33
|
-
}
|
|
34
|
-
var data = column.data;
|
|
35
|
-
var linkedColumnType = linked_column.type;
|
|
36
|
-
if (linkedColumnType === CellType.BOOL || linkedColumnType === CellType.CHECKBOX) {
|
|
37
|
-
var normalizedCellValue = cellValue;
|
|
38
|
-
if (Array.isArray(cellValue)) {
|
|
39
|
-
normalizedCellValue = cellValue[0];
|
|
40
|
-
}
|
|
41
|
-
normalizedCellValue = TRUE_VALUE.includes(normalizedCellValue);
|
|
42
|
-
return checkboxFilter(normalizedCellValue, filter);
|
|
43
|
-
}
|
|
44
|
-
if (linkedColumnType === CellType.SINGLE_SELECT) {
|
|
45
|
-
var _normalizedCellValue = cellValue;
|
|
46
|
-
if (cellValue && !Array.isArray(cellValue)) {
|
|
47
|
-
_normalizedCellValue = [cellValue];
|
|
48
|
-
}
|
|
49
|
-
return multipleSelectFilter(_normalizedCellValue, filter);
|
|
50
|
-
}
|
|
51
|
-
if (linkedColumnType === CellType.MULTIPLE_SELECT) {
|
|
52
|
-
return multipleSelectFilter(cellValue, filter);
|
|
53
|
-
}
|
|
54
|
-
if (isNumericColumn({
|
|
55
|
-
type: linkedColumnType
|
|
56
|
-
})) {
|
|
57
|
-
var _normalizedCellValue2 = cellValue;
|
|
58
|
-
if (Array.isArray(cellValue)) {
|
|
59
|
-
var cellValueLength = cellValue.length;
|
|
60
|
-
if (cellValueLength === 0) {
|
|
61
|
-
_normalizedCellValue2 = '';
|
|
62
|
-
} else if (cellValueLength === 1) {
|
|
63
|
-
_normalizedCellValue2 = cellValue[0];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return numberFilter(_normalizedCellValue2, filter);
|
|
67
|
-
}
|
|
68
|
-
if (DATE_COLUMN_OPTIONS.includes(linkedColumnType)) {
|
|
69
|
-
var newCellValue = cellValue;
|
|
70
|
-
if (Array.isArray(cellValue)) {
|
|
71
|
-
newCellValue = String(cellValue);
|
|
72
|
-
}
|
|
73
|
-
return dateFilter(newCellValue, filter);
|
|
74
|
-
}
|
|
75
|
-
if (COLLABORATOR_COLUMN_TYPES.includes(linkedColumnType)) {
|
|
76
|
-
return collaboratorFilter(cellValue, filter, username);
|
|
77
|
-
}
|
|
78
|
-
var sCellValue = getFormulaDisplayString(cellValue, data) || '';
|
|
79
|
-
return textFilter(sCellValue, filter, userId);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export { filterByArrayType };
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var checkboxFilter = function checkboxFilter(cellValue, _ref) {
|
|
2
|
-
var filter_term = _ref.filter_term;
|
|
3
|
-
var filterTerm = filter_term || false;
|
|
4
|
-
var normalizedCellValue = cellValue || false;
|
|
5
|
-
return normalizedCellValue === filterTerm;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export { checkboxFilter };
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
2
|
-
import '../../constants/filter/filter-column-options.js';
|
|
3
|
-
import '../../constants/filter/filter-modifier.js';
|
|
4
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
5
|
-
import '../../constants/filter/filter-is-within.js';
|
|
6
|
-
|
|
7
|
-
var collaboratorFilter = function collaboratorFilter(cellValue, _ref, username) {
|
|
8
|
-
var filter_predicate = _ref.filter_predicate,
|
|
9
|
-
filter_term = _ref.filter_term;
|
|
10
|
-
switch (filter_predicate) {
|
|
11
|
-
case FILTER_PREDICATE_TYPE.HAS_ANY_OF:
|
|
12
|
-
{
|
|
13
|
-
return !Array.isArray(filter_term) || filter_term.length === 0 || Array.isArray(cellValue) && filter_term.some(function (email) {
|
|
14
|
-
return cellValue.includes(email);
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
case FILTER_PREDICATE_TYPE.HAS_ALL_OF:
|
|
18
|
-
{
|
|
19
|
-
return !Array.isArray(filter_term) || filter_term.length === 0 || Array.isArray(cellValue) && filter_term.every(function (email) {
|
|
20
|
-
return cellValue.includes(email);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
case FILTER_PREDICATE_TYPE.HAS_NONE_OF:
|
|
24
|
-
{
|
|
25
|
-
if (!Array.isArray(filter_term) || filter_term.length === 0 || !Array.isArray(cellValue) || cellValue.length === 0) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
return filter_term.every(function (email) {
|
|
29
|
-
return cellValue.indexOf(email) < 0;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
case FILTER_PREDICATE_TYPE.IS_EXACTLY:
|
|
33
|
-
{
|
|
34
|
-
if (!Array.isArray(filter_term) || filter_term.length === 0) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
if (!Array.isArray(cellValue) || cellValue.length === 0) {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
var nonReptCellValue = _toConsumableArray(new Set(cellValue));
|
|
41
|
-
if (nonReptCellValue.length !== filter_term.length) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
return filter_term.every(function (email) {
|
|
45
|
-
return nonReptCellValue.includes(email);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
case FILTER_PREDICATE_TYPE.EMPTY:
|
|
49
|
-
{
|
|
50
|
-
return !Array.isArray(cellValue) || cellValue.length === 0;
|
|
51
|
-
}
|
|
52
|
-
case FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
53
|
-
{
|
|
54
|
-
return Array.isArray(cellValue) && cellValue.length > 0;
|
|
55
|
-
}
|
|
56
|
-
case FILTER_PREDICATE_TYPE.INCLUDE_ME:
|
|
57
|
-
{
|
|
58
|
-
return Array.isArray(cellValue) && cellValue.indexOf(username) > -1;
|
|
59
|
-
}
|
|
60
|
-
default:
|
|
61
|
-
{
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export { collaboratorFilter };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import '../../constants/filter/filter-column-options.js';
|
|
2
|
-
import '../../constants/filter/filter-modifier.js';
|
|
3
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
4
|
-
import '../../constants/filter/filter-is-within.js';
|
|
5
|
-
|
|
6
|
-
var creatorFilter = function creatorFilter(cellValue, _ref, username) {
|
|
7
|
-
var filter_predicate = _ref.filter_predicate,
|
|
8
|
-
filter_term = _ref.filter_term;
|
|
9
|
-
switch (filter_predicate) {
|
|
10
|
-
case FILTER_PREDICATE_TYPE.CONTAINS:
|
|
11
|
-
{
|
|
12
|
-
if (!Array.isArray(filter_term)) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
if (!cellValue) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
return filter_term.findIndex(function (item) {
|
|
19
|
-
return item === cellValue;
|
|
20
|
-
}) > -1;
|
|
21
|
-
}
|
|
22
|
-
case FILTER_PREDICATE_TYPE.NOT_CONTAIN:
|
|
23
|
-
{
|
|
24
|
-
if (!Array.isArray(filter_term) || !cellValue) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
return filter_term.findIndex(function (item) {
|
|
28
|
-
return item === cellValue;
|
|
29
|
-
}) < 0;
|
|
30
|
-
}
|
|
31
|
-
case FILTER_PREDICATE_TYPE.INCLUDE_ME:
|
|
32
|
-
{
|
|
33
|
-
return cellValue === username;
|
|
34
|
-
}
|
|
35
|
-
case FILTER_PREDICATE_TYPE.IS:
|
|
36
|
-
{
|
|
37
|
-
return !Array.isArray(filter_term) || cellValue === filter_term[0];
|
|
38
|
-
}
|
|
39
|
-
case FILTER_PREDICATE_TYPE.IS_NOT:
|
|
40
|
-
{
|
|
41
|
-
return !Array.isArray(filter_term) || cellValue !== filter_term[0];
|
|
42
|
-
}
|
|
43
|
-
default:
|
|
44
|
-
{
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export { creatorFilter };
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { DateUtils } from '../../date.js';
|
|
2
|
-
import '../../constants/filter/filter-column-options.js';
|
|
3
|
-
import { FILTER_TERM_MODIFIER_TYPE } from '../../constants/filter/filter-modifier.js';
|
|
4
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
5
|
-
import '../../constants/filter/filter-is-within.js';
|
|
6
|
-
|
|
7
|
-
var dateFilter = function dateFilter(cellValue, _ref) {
|
|
8
|
-
var filter_predicate = _ref.filter_predicate,
|
|
9
|
-
filter_term_modifier = _ref.filter_term_modifier,
|
|
10
|
-
filter_term = _ref.filter_term,
|
|
11
|
-
other_date = _ref.other_date;
|
|
12
|
-
switch (filter_predicate) {
|
|
13
|
-
case FILTER_PREDICATE_TYPE.IS:
|
|
14
|
-
{
|
|
15
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || DateUtils.format(cellValue) === other_date;
|
|
16
|
-
}
|
|
17
|
-
case FILTER_PREDICATE_TYPE.IS_WITHIN:
|
|
18
|
-
{
|
|
19
|
-
var startDate = other_date.startDate,
|
|
20
|
-
endDate = other_date.endDate;
|
|
21
|
-
var currentDate = DateUtils.format(cellValue);
|
|
22
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && currentDate >= startDate && currentDate <= endDate;
|
|
23
|
-
}
|
|
24
|
-
case FILTER_PREDICATE_TYPE.IS_BEFORE:
|
|
25
|
-
{
|
|
26
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && DateUtils.getValidDate(cellValue) && DateUtils.format(cellValue) < other_date;
|
|
27
|
-
}
|
|
28
|
-
case FILTER_PREDICATE_TYPE.IS_AFTER:
|
|
29
|
-
{
|
|
30
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && DateUtils.getValidDate(cellValue) && DateUtils.format(cellValue) > other_date;
|
|
31
|
-
}
|
|
32
|
-
case FILTER_PREDICATE_TYPE.IS_ON_OR_BEFORE:
|
|
33
|
-
{
|
|
34
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && DateUtils.getValidDate(cellValue) && DateUtils.format(cellValue) <= other_date;
|
|
35
|
-
}
|
|
36
|
-
case FILTER_PREDICATE_TYPE.IS_ON_OR_AFTER:
|
|
37
|
-
{
|
|
38
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !!cellValue && DateUtils.getValidDate(cellValue) && DateUtils.format(cellValue) >= other_date;
|
|
39
|
-
}
|
|
40
|
-
case FILTER_PREDICATE_TYPE.IS_NOT:
|
|
41
|
-
{
|
|
42
|
-
return filter_term_modifier === FILTER_TERM_MODIFIER_TYPE.EXACT_DATE && !filter_term || !cellValue || DateUtils.format(cellValue) !== other_date;
|
|
43
|
-
}
|
|
44
|
-
case FILTER_PREDICATE_TYPE.EMPTY:
|
|
45
|
-
{
|
|
46
|
-
return cellValue && DateUtils.getValidDate(cellValue) ? false : true;
|
|
47
|
-
}
|
|
48
|
-
case FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
49
|
-
{
|
|
50
|
-
return cellValue && DateUtils.getValidDate(cellValue) ? true : false;
|
|
51
|
-
}
|
|
52
|
-
default:
|
|
53
|
-
{
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export { dateFilter };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import '../../constants/filter/filter-column-options.js';
|
|
2
|
-
import '../../constants/filter/filter-modifier.js';
|
|
3
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
4
|
-
import '../../constants/filter/filter-is-within.js';
|
|
5
|
-
|
|
6
|
-
var digitalSignFilter = function digitalSignFilter(cellValue, _ref) {
|
|
7
|
-
var filter_predicate = _ref.filter_predicate;
|
|
8
|
-
switch (filter_predicate) {
|
|
9
|
-
case FILTER_PREDICATE_TYPE.EMPTY:
|
|
10
|
-
{
|
|
11
|
-
if (!cellValue) return true;
|
|
12
|
-
return !cellValue.username || !cellValue.sign_time || !cellValue.sign_image_url;
|
|
13
|
-
}
|
|
14
|
-
case FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
15
|
-
{
|
|
16
|
-
if (!cellValue) return false;
|
|
17
|
-
return cellValue.username && cellValue.sign_time && cellValue.sign_image_url ? true : false;
|
|
18
|
-
}
|
|
19
|
-
default:
|
|
20
|
-
{
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export { digitalSignFilter };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import '../../constants/filter/filter-column-options.js';
|
|
2
|
-
import '../../constants/filter/filter-modifier.js';
|
|
3
|
-
import { FILTER_PREDICATE_TYPE } from '../../constants/filter/filter-predicate.js';
|
|
4
|
-
import '../../constants/filter/filter-is-within.js';
|
|
5
|
-
|
|
6
|
-
var fileFilter = function fileFilter(cellValue, _ref) {
|
|
7
|
-
var filter_predicate = _ref.filter_predicate;
|
|
8
|
-
switch (filter_predicate) {
|
|
9
|
-
case FILTER_PREDICATE_TYPE.EMPTY:
|
|
10
|
-
{
|
|
11
|
-
return cellValue && cellValue.length > 0 ? false : true;
|
|
12
|
-
}
|
|
13
|
-
case FILTER_PREDICATE_TYPE.NOT_EMPTY:
|
|
14
|
-
{
|
|
15
|
-
return cellValue && cellValue.length > 0 ? true : false;
|
|
16
|
-
}
|
|
17
|
-
default:
|
|
18
|
-
{
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export { fileFilter };
|