dtable-utils 0.0.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 +20 -0
- package/dist/index.js +1 -0
- package/es/cell-value-get/cell-value.js +165 -0
- package/es/cell-value-get/collaborator.js +33 -0
- package/es/cell-value-get/date.js +53 -0
- package/es/cell-value-get/digital-sign.js +10 -0
- package/es/cell-value-get/duration.js +86 -0
- package/es/cell-value-get/geolocation.js +74 -0
- package/es/cell-value-get/long-text.js +11 -0
- package/es/cell-value-get/number.js +222 -0
- package/es/cell-value-get/option.js +32 -0
- package/es/cell-value-set/number.js +53 -0
- package/es/column/common.js +41 -0
- package/es/column/date.js +17 -0
- package/es/column/number.js +31 -0
- package/es/common.js +16 -0
- package/es/constants/cell-type.js +33 -0
- package/es/constants/column.js +45 -0
- package/es/constants/filter/filter-column-options.js +65 -0
- package/es/constants/filter/filter-is-within.js +6 -0
- package/es/constants/filter/filter-modifier.js +29 -0
- package/es/constants/filter/filter-predicate.js +33 -0
- package/es/constants/filter/index.js +16 -0
- package/es/constants/formula.js +14 -0
- package/es/constants/select-option.js +129 -0
- package/es/date.js +226 -0
- package/es/helper/number-precision/index.js +64 -0
- package/es/index.js +26 -0
- package/es/validate/email.js +10 -0
- package/es/validate/filter.js +447 -0
- package/lib/cell-value-get/cell-value.js +170 -0
- package/lib/cell-value-get/collaborator.js +38 -0
- package/lib/cell-value-get/date.js +61 -0
- package/lib/cell-value-get/digital-sign.js +14 -0
- package/lib/cell-value-get/duration.js +90 -0
- package/lib/cell-value-get/geolocation.js +78 -0
- package/lib/cell-value-get/long-text.js +15 -0
- package/lib/cell-value-get/number.js +227 -0
- package/lib/cell-value-get/option.js +37 -0
- package/lib/cell-value-set/number.js +58 -0
- package/lib/column/common.js +46 -0
- package/lib/column/date.js +21 -0
- package/lib/column/number.js +36 -0
- package/lib/common.js +20 -0
- package/lib/constants/cell-type.js +37 -0
- package/lib/constants/column.js +63 -0
- package/lib/constants/filter/filter-column-options.js +73 -0
- package/lib/constants/filter/filter-is-within.js +11 -0
- package/lib/constants/filter/filter-modifier.js +38 -0
- package/lib/constants/filter/filter-predicate.js +42 -0
- package/lib/constants/filter/index.js +27 -0
- package/lib/constants/formula.js +23 -0
- package/lib/constants/select-option.js +134 -0
- package/lib/date.js +235 -0
- package/lib/helper/number-precision/index.js +69 -0
- package/lib/index.js +79 -0
- package/lib/validate/email.js +14 -0
- package/lib/validate/filter.js +458 -0
- package/package.json +44 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { NPminus as minus } from '../helper/number-precision/index.js';
|
|
2
|
+
import { DEFAULT_NUMBER_FORMAT } from '../constants/column.js';
|
|
3
|
+
import { getDurationDisplayString } from './duration.js';
|
|
4
|
+
|
|
5
|
+
var separatorMap = {
|
|
6
|
+
comma: ',',
|
|
7
|
+
dot: '.',
|
|
8
|
+
no: '',
|
|
9
|
+
space: ' '
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* removeZerosFromEnd('0.0100') // '0.01'
|
|
14
|
+
* @param {string} sNumber string of numbers
|
|
15
|
+
*/
|
|
16
|
+
var removeZerosFromEnd = function removeZerosFromEnd(sNumber) {
|
|
17
|
+
if (typeof sNumber !== 'string') return '';
|
|
18
|
+
if (sNumber.endsWith('0')) {
|
|
19
|
+
return sNumber.replace(/(?:\.0*|(\.\d+?)0+)$/, '$1');
|
|
20
|
+
}
|
|
21
|
+
return sNumber;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* e.g. 1.23 // 2
|
|
26
|
+
* @param {number} number
|
|
27
|
+
* @returns digital length
|
|
28
|
+
*/
|
|
29
|
+
var getDecimalDigitsFromNumber = function getDecimalDigitsFromNumber(number) {
|
|
30
|
+
if (Number.isInteger(number)) {
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
var decimalPart = String(number).split('.')[1];
|
|
34
|
+
var digitsLength = decimalPart ? decimalPart.length : 8;
|
|
35
|
+
return digitsLength > 8 ? 8 : digitsLength;
|
|
36
|
+
};
|
|
37
|
+
var toThousands = function toThousands(number, _ref) {
|
|
38
|
+
var formats = _ref.formats,
|
|
39
|
+
_ref$isCurrency = _ref.isCurrency,
|
|
40
|
+
isCurrency = _ref$isCurrency === void 0 ? true : _ref$isCurrency;
|
|
41
|
+
var _ref2 = formats || {},
|
|
42
|
+
_ref2$decimal = _ref2.decimal,
|
|
43
|
+
decimal = _ref2$decimal === void 0 ? 'dot' : _ref2$decimal,
|
|
44
|
+
_ref2$thousands = _ref2.thousands,
|
|
45
|
+
thousands = _ref2$thousands === void 0 ? 'no' : _ref2$thousands,
|
|
46
|
+
_ref2$precision = _ref2.precision,
|
|
47
|
+
precision = _ref2$precision === void 0 ? 2 : _ref2$precision,
|
|
48
|
+
_ref2$enable_precisio = _ref2.enable_precision,
|
|
49
|
+
enable_precision = _ref2$enable_precisio === void 0 ? false : _ref2$enable_precisio;
|
|
50
|
+
|
|
51
|
+
// handle numbers in scientific notation
|
|
52
|
+
if (String(number).includes('e')) {
|
|
53
|
+
if (number < 1 && number > -1) {
|
|
54
|
+
// 1.convert to non-scientific number
|
|
55
|
+
var numericString = number.toFixed(enable_precision ? precision : 8);
|
|
56
|
+
|
|
57
|
+
// 2.remove 0 from end of the number which not set precision. e.g. 0.100000
|
|
58
|
+
if (!enable_precision) {
|
|
59
|
+
numericString = removeZerosFromEnd(numericString);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 3.remove minus from number which equal to 0. e.g. '-0.00'
|
|
63
|
+
if (parseFloat(numericString) === 0) {
|
|
64
|
+
return numericString.startsWith('-') ? numericString.substring(1) : numericString;
|
|
65
|
+
}
|
|
66
|
+
return numericString;
|
|
67
|
+
}
|
|
68
|
+
return number;
|
|
69
|
+
}
|
|
70
|
+
var decimalString = separatorMap[decimal];
|
|
71
|
+
var thousandsString = separatorMap[thousands];
|
|
72
|
+
var decimalDigits = enable_precision ? precision : getDecimalDigitsFromNumber(number);
|
|
73
|
+
var floatNumber = parseFloat(number.toFixed(decimalDigits));
|
|
74
|
+
var isMinus = floatNumber < 0;
|
|
75
|
+
var integer = Math.trunc(floatNumber);
|
|
76
|
+
|
|
77
|
+
// format decimal part
|
|
78
|
+
var decimalPart = String(Math.abs(minus(floatNumber, integer)).toFixed(decimalDigits)).slice(1);
|
|
79
|
+
if (!enable_precision) {
|
|
80
|
+
decimalPart = removeZerosFromEnd(decimalPart);
|
|
81
|
+
}
|
|
82
|
+
if (isCurrency) {
|
|
83
|
+
if (!enable_precision) {
|
|
84
|
+
decimalPart = decimalPart.length === 2 ? decimalPart = decimalPart.padEnd(3, '0') : (decimalPart.substring(0, 3) || '.').padEnd(3, '0');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
decimalPart = decimalPart.replace(/./, decimalString);
|
|
88
|
+
|
|
89
|
+
// format integer part
|
|
90
|
+
var integerNumbers = [];
|
|
91
|
+
var counter = 0;
|
|
92
|
+
integer = Math.abs(integer).toString();
|
|
93
|
+
for (var i = integer.length - 1; i > -1; i--) {
|
|
94
|
+
counter += 1;
|
|
95
|
+
integerNumbers.unshift(integer[i]);
|
|
96
|
+
if (!(counter % 3) && i !== 0) {
|
|
97
|
+
integerNumbers.unshift(thousandsString);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return "".concat(isMinus ? '-' : '').concat(integerNumbers.join('')).concat(decimalPart);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Get formatted number
|
|
105
|
+
* @param {number} number e.g. 123
|
|
106
|
+
* @param {object} formats e.g. { format: 'number', decimal: 'dot', ... }
|
|
107
|
+
* @returns formatted number, string
|
|
108
|
+
*/
|
|
109
|
+
var getNumberDisplayString = function getNumberDisplayString(number, formats) {
|
|
110
|
+
var type = Object.prototype.toString.call(number);
|
|
111
|
+
if (type !== '[object Number]') {
|
|
112
|
+
// return formula internal errors directly.
|
|
113
|
+
if (type === '[object String]' && number.startsWith('#')) {
|
|
114
|
+
return number;
|
|
115
|
+
}
|
|
116
|
+
return '';
|
|
117
|
+
}
|
|
118
|
+
if (isNaN(number) || number === Infinity || number === -Infinity) return String(number);
|
|
119
|
+
|
|
120
|
+
// formats: old version maybe 'null'
|
|
121
|
+
var _ref3 = formats || {},
|
|
122
|
+
_ref3$format = _ref3.format,
|
|
123
|
+
format = _ref3$format === void 0 ? DEFAULT_NUMBER_FORMAT : _ref3$format;
|
|
124
|
+
switch (format) {
|
|
125
|
+
case 'number':
|
|
126
|
+
{
|
|
127
|
+
return toThousands(number, {
|
|
128
|
+
formats: formats,
|
|
129
|
+
isCurrency: false
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
case 'percent':
|
|
133
|
+
{
|
|
134
|
+
return "".concat(toThousands(Number.parseFloat((number * 100).toFixed(8)), {
|
|
135
|
+
formats: formats,
|
|
136
|
+
isCurrency: false
|
|
137
|
+
}), "%");
|
|
138
|
+
}
|
|
139
|
+
case 'yuan':
|
|
140
|
+
{
|
|
141
|
+
return "\uFFE5".concat(toThousands(number, {
|
|
142
|
+
formats: formats
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
case 'dollar':
|
|
146
|
+
{
|
|
147
|
+
return "$".concat(toThousands(number, {
|
|
148
|
+
formats: formats
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
case 'euro':
|
|
152
|
+
{
|
|
153
|
+
return "\u20AC".concat(toThousands(number, {
|
|
154
|
+
formats: formats
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
case 'duration':
|
|
158
|
+
{
|
|
159
|
+
return getDurationDisplayString(number, formats);
|
|
160
|
+
}
|
|
161
|
+
case 'custom_currency':
|
|
162
|
+
{
|
|
163
|
+
if (formats.currency_symbol_position === 'after') {
|
|
164
|
+
return "".concat(toThousands(number, {
|
|
165
|
+
formats: formats
|
|
166
|
+
})).concat(formats.currency_symbol || '');
|
|
167
|
+
}
|
|
168
|
+
return "".concat(formats.currency_symbol || '').concat(toThousands(number, {
|
|
169
|
+
formats: formats
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
default:
|
|
173
|
+
{
|
|
174
|
+
return String(number);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Remove illegal characters
|
|
181
|
+
* @param {string} sNum e.g. "1。23"
|
|
182
|
+
* @param {string} format e.g. "number"
|
|
183
|
+
* @param {string} currencySymbol custom symbol
|
|
184
|
+
* @returns legal characters, string
|
|
185
|
+
*/
|
|
186
|
+
var replaceNumberNotAllowInput = function replaceNumberNotAllowInput(sNum, format, currencySymbol) {
|
|
187
|
+
if (!sNum) {
|
|
188
|
+
return '';
|
|
189
|
+
}
|
|
190
|
+
var fixedSNum = sNum.replace(/。/g, '.');
|
|
191
|
+
switch (format) {
|
|
192
|
+
case 'percent':
|
|
193
|
+
{
|
|
194
|
+
return fixedSNum.replace(/[^.-\d,%]/g, '');
|
|
195
|
+
}
|
|
196
|
+
case 'yuan':
|
|
197
|
+
{
|
|
198
|
+
return fixedSNum.replace(/[^.-\d¥¥,]/g, '');
|
|
199
|
+
}
|
|
200
|
+
case 'dollar':
|
|
201
|
+
{
|
|
202
|
+
return fixedSNum.replace(/[^.-\d$,]/g, '');
|
|
203
|
+
}
|
|
204
|
+
case 'euro':
|
|
205
|
+
{
|
|
206
|
+
return fixedSNum.replace(/[^.-\d€,]/g, '');
|
|
207
|
+
}
|
|
208
|
+
case 'custom_currency':
|
|
209
|
+
{
|
|
210
|
+
// eslint-disable-next-line
|
|
211
|
+
var reg = new RegExp('[^.-\d' + currencySymbol + ',]', 'g');
|
|
212
|
+
return fixedSNum.replace(reg, '');
|
|
213
|
+
}
|
|
214
|
+
default:
|
|
215
|
+
{
|
|
216
|
+
// default as number format
|
|
217
|
+
return fixedSNum.replace(/[^.-\d,]/g, '');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export { getNumberDisplayString, replaceNumberNotAllowInput };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get option name of the given id
|
|
3
|
+
* @param {array} options e.g. [ { id: '', color: '', name: '' } ]
|
|
4
|
+
* @param {string} targetOptionID option id
|
|
5
|
+
* @returns option name, string
|
|
6
|
+
*/
|
|
7
|
+
var getOptionName = function getOptionName(options, targetOptionID) {
|
|
8
|
+
if (!targetOptionID || !Array.isArray(options)) return '';
|
|
9
|
+
var targetOption = options.find(function (option) {
|
|
10
|
+
return option.id === targetOptionID;
|
|
11
|
+
});
|
|
12
|
+
return targetOption ? targetOption.name : '';
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get concatenated options names of given ids.
|
|
17
|
+
* @param {array} options e.g. [ { id: '', color: '', name: '' }, ... ]
|
|
18
|
+
* @param {array} targetOptionsIds e.g. [ option.id, ... ]
|
|
19
|
+
* @returns concatenated options names, string. e.g. 'name1, name2'
|
|
20
|
+
*/
|
|
21
|
+
var getMultipleOptionName = function getMultipleOptionName(options, targetOptionsIds) {
|
|
22
|
+
if (!Array.isArray(targetOptionsIds) || !Array.isArray(options)) return '';
|
|
23
|
+
var selectedOptions = options.filter(function (option) {
|
|
24
|
+
return targetOptionsIds.includes(option.id);
|
|
25
|
+
});
|
|
26
|
+
if (selectedOptions.length === 0) return '';
|
|
27
|
+
return selectedOptions.map(function (option) {
|
|
28
|
+
return option.name;
|
|
29
|
+
}).join(', ');
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { getMultipleOptionName, getOptionName };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { NPdivide as divide } from '../helper/number-precision/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {string} sNumber e.g. '1.23'
|
|
5
|
+
* @param {string} format e.g. 'percent'
|
|
6
|
+
* @returns float number from string. e.g. '1.23' = 1.23
|
|
7
|
+
*/
|
|
8
|
+
var getFloatNumber = function getFloatNumber(sNumber, format) {
|
|
9
|
+
if (!sNumber && sNumber !== 0) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
if (typeof sNumber === 'number') return sNumber;
|
|
13
|
+
if (typeof sNumber !== 'string') return null;
|
|
14
|
+
var parsedNum = parseFloat(sNumber.replace(/[^.-\d]/g, ''));
|
|
15
|
+
if (format === 'percent' && !isNaN(parsedNum)) {
|
|
16
|
+
return divide(parsedNum, 100);
|
|
17
|
+
}
|
|
18
|
+
return isNaN(parsedNum) ? null : parsedNum;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* parse string to number depend on formats
|
|
23
|
+
* @param {string} sNum e.g. '1.23'
|
|
24
|
+
* @param {object} formats { format, decimal, ... }
|
|
25
|
+
* @returns parsed number
|
|
26
|
+
*/
|
|
27
|
+
var formatStringToNumber = function formatStringToNumber(sNum, formats) {
|
|
28
|
+
var _ref = formats || {},
|
|
29
|
+
format = _ref.format,
|
|
30
|
+
decimal = _ref.decimal,
|
|
31
|
+
thousands = _ref.thousands,
|
|
32
|
+
enable_precision = _ref.enable_precision,
|
|
33
|
+
precision = _ref.precision;
|
|
34
|
+
var value = sNum;
|
|
35
|
+
if (decimal && thousands && decimal === 'comma') {
|
|
36
|
+
if (thousands === 'dot') {
|
|
37
|
+
value = value.replace(/,/, '@');
|
|
38
|
+
value = value.replace(/\./g, ',');
|
|
39
|
+
value = value.replace(/@/, '.');
|
|
40
|
+
} else {
|
|
41
|
+
value = value.replace(/\./g, '');
|
|
42
|
+
value = value.replace(/,/, '.');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
value = getFloatNumber(value, format);
|
|
46
|
+
if (enable_precision && value) {
|
|
47
|
+
var fixedPrecision = format === 'percent' ? precision + 2 : precision;
|
|
48
|
+
value = Number(parseFloat(value).toFixed(fixedPrecision));
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { formatStringToNumber, getFloatNumber };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CellType } from '../constants/cell-type.js';
|
|
2
|
+
import { FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE } from '../constants/formula.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Get column type.
|
|
6
|
+
* @param {object} column { type: 'xxx', ... }
|
|
7
|
+
* @returns column type
|
|
8
|
+
*/
|
|
9
|
+
var getCheckType = function getCheckType(column) {
|
|
10
|
+
var type = column.type,
|
|
11
|
+
data = column.data;
|
|
12
|
+
if (FORMULA_COLUMN_TYPES_MAP[type]) {
|
|
13
|
+
var _ref = data || {},
|
|
14
|
+
result_type = _ref.result_type,
|
|
15
|
+
array_type = _ref.array_type;
|
|
16
|
+
if (result_type === FORMULA_RESULT_TYPE.ARRAY) {
|
|
17
|
+
return array_type;
|
|
18
|
+
}
|
|
19
|
+
return result_type;
|
|
20
|
+
}
|
|
21
|
+
if (type === CellType.LINK) {
|
|
22
|
+
var _ref2 = data || {},
|
|
23
|
+
_array_type = _ref2.array_type;
|
|
24
|
+
return _array_type;
|
|
25
|
+
}
|
|
26
|
+
return type;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get options from single-select/multiple-select column.
|
|
31
|
+
* @param {object} column e.g. { type, data: { options: [] } }
|
|
32
|
+
* @returns options, array
|
|
33
|
+
*/
|
|
34
|
+
var getColumnOptions = function getColumnOptions(column) {
|
|
35
|
+
if (!column || !column.data || !Array.isArray(column.data.options)) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
return column.data.options;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { getCheckType, getColumnOptions };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getCheckType } from './common.js';
|
|
2
|
+
import { DATE_COLUMN_OPTIONS } from '../constants/column.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Check whether is date column:
|
|
6
|
+
* - column type is date, ctime or mtime etc.
|
|
7
|
+
* - column type is formula and result_type is date
|
|
8
|
+
* - column type is link/link_fromula and array_type is date, ctime or mtime etc.
|
|
9
|
+
* @param {object} column e.g. { type, data }
|
|
10
|
+
* @returns true/false, bool
|
|
11
|
+
*/
|
|
12
|
+
var isDateColumn = function isDateColumn(column) {
|
|
13
|
+
var checkType = getCheckType(column);
|
|
14
|
+
return DATE_COLUMN_OPTIONS.includes(checkType);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { isDateColumn };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getCheckType } from './common.js';
|
|
2
|
+
import { CellType } from '../constants/cell-type.js';
|
|
3
|
+
import { NUMERIC_COLUMNS_TYPES } from '../constants/column.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Check whether is numeric column:
|
|
7
|
+
* - column type is number, duration or rate etc.
|
|
8
|
+
* - column type is formula and result_type is number
|
|
9
|
+
* - column type is link/link_formula and array_type is number, duration or rate etc.
|
|
10
|
+
* @param {object} column e.g. { type, data }
|
|
11
|
+
* @returns true/false, bool
|
|
12
|
+
*/
|
|
13
|
+
var isNumericColumn = function isNumericColumn(column) {
|
|
14
|
+
var checkType = getCheckType(column);
|
|
15
|
+
return NUMERIC_COLUMNS_TYPES.includes(checkType);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Check whether is number column:
|
|
20
|
+
* - column type is number
|
|
21
|
+
* - column type is formula and result_type is number
|
|
22
|
+
* - column type is link/link_formula and array_type is number
|
|
23
|
+
* @param {object} column e.g. { type, data }
|
|
24
|
+
* @returns true/false, bool
|
|
25
|
+
*/
|
|
26
|
+
var isNumberColumn = function isNumberColumn(column) {
|
|
27
|
+
var checkType = getCheckType(column);
|
|
28
|
+
return checkType === CellType.NUMBER;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { isNumberColumn, isNumericColumn };
|
package/es/common.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a random string of specified length.
|
|
3
|
+
* @param {number} keyLength
|
|
4
|
+
* @returns random code, string
|
|
5
|
+
*/
|
|
6
|
+
var generatorBase64Code = function generatorBase64Code() {
|
|
7
|
+
var keyLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4;
|
|
8
|
+
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789';
|
|
9
|
+
var key = '';
|
|
10
|
+
for (var i = 0; i < keyLength; i++) {
|
|
11
|
+
key += possible.charAt(Math.floor(Math.random() * possible.length));
|
|
12
|
+
}
|
|
13
|
+
return key;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { generatorBase64Code };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var CellType = {
|
|
2
|
+
DEFAULT: 'default',
|
|
3
|
+
NUMBER: 'number',
|
|
4
|
+
TEXT: 'text',
|
|
5
|
+
CHECKBOX: 'checkbox',
|
|
6
|
+
DATE: 'date',
|
|
7
|
+
SINGLE_SELECT: 'single-select',
|
|
8
|
+
LONG_TEXT: 'long-text',
|
|
9
|
+
IMAGE: 'image',
|
|
10
|
+
FILE: 'file',
|
|
11
|
+
MULTIPLE_SELECT: 'multiple-select',
|
|
12
|
+
COLLABORATOR: 'collaborator',
|
|
13
|
+
LINK: 'link',
|
|
14
|
+
FORMULA: 'formula',
|
|
15
|
+
LINK_FORMULA: 'link-formula',
|
|
16
|
+
CREATOR: 'creator',
|
|
17
|
+
CTIME: 'ctime',
|
|
18
|
+
LAST_MODIFIER: 'last-modifier',
|
|
19
|
+
MTIME: 'mtime',
|
|
20
|
+
GEOLOCATION: 'geolocation',
|
|
21
|
+
AUTO_NUMBER: 'auto-number',
|
|
22
|
+
URL: 'url',
|
|
23
|
+
EMAIL: 'email',
|
|
24
|
+
DURATION: 'duration',
|
|
25
|
+
BUTTON: 'button',
|
|
26
|
+
RATE: 'rate',
|
|
27
|
+
DIGITAL_SIGN: 'digital-sign',
|
|
28
|
+
// formula | link-formula column calculate result type
|
|
29
|
+
BOOL: 'bool',
|
|
30
|
+
STRING: 'string'
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { CellType };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { CellType } from './cell-type.js';
|
|
3
|
+
|
|
4
|
+
var _COLUMNS_ICON_CONFIG, _DURATION_DECIMAL_DIG, _DURATION_ZERO_DISPLA;
|
|
5
|
+
var COLUMNS_ICON_CONFIG = (_COLUMNS_ICON_CONFIG = {}, _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DEFAULT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.TEXT, 'dtable-font dtable-icon-single-line-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.NUMBER, 'dtable-font dtable-icon-number'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CHECKBOX, 'dtable-font dtable-icon-check-square-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DATE, 'dtable-font dtable-icon-calendar-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.SINGLE_SELECT, 'dtable-font dtable-icon-single-election'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LONG_TEXT, 'dtable-font dtable-icon-long-text'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.IMAGE, 'dtable-font dtable-icon-picture'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FILE, 'dtable-font dtable-icon-file-alt-solid'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MULTIPLE_SELECT, 'dtable-font dtable-icon-multiple-selection'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.COLLABORATOR, 'dtable-font dtable-icon-collaborator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK, 'dtable-font dtable-icon-link-other-record'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.FORMULA, 'dtable-font dtable-icon-formula'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LINK_FORMULA, 'dtable-font dtable-icon-link-formulas'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CREATOR, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.CTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.LAST_MODIFIER, 'dtable-font dtable-icon-creator'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.MTIME, 'dtable-font dtable-icon-creation-time'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.GEOLOCATION, 'dtable-font dtable-icon-location'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.AUTO_NUMBER, 'dtable-font dtable-icon-autonumber'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.URL, 'dtable-font dtable-icon-url'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.EMAIL, 'dtable-font dtable-icon-email'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DURATION, 'dtable-font dtable-icon-duration'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.BUTTON, 'dtable-font dtable-icon-button'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.RATE, 'dtable-font dtable-icon-rate'), _defineProperty(_COLUMNS_ICON_CONFIG, CellType.DIGITAL_SIGN, 'dtable-font dtable-icon-handwritten-signature'), _COLUMNS_ICON_CONFIG);
|
|
6
|
+
var DATE_COLUMN_OPTIONS = [CellType.DATE, CellType.CTIME, CellType.MTIME];
|
|
7
|
+
var NUMERIC_COLUMNS_TYPES = [CellType.NUMBER, CellType.DURATION, CellType.RATE];
|
|
8
|
+
var COLLABORATOR_COLUMN_TYPES = [CellType.COLLABORATOR, CellType.CREATOR, CellType.LAST_MODIFIER];
|
|
9
|
+
|
|
10
|
+
// date
|
|
11
|
+
var DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';
|
|
12
|
+
var DATE_UNIT = {
|
|
13
|
+
YEAR: 'year',
|
|
14
|
+
MONTH: 'month',
|
|
15
|
+
WEEK: 'week',
|
|
16
|
+
DAY: 'day',
|
|
17
|
+
HOUR: 'hour',
|
|
18
|
+
HOURS: 'hours',
|
|
19
|
+
MINUTE: 'minute',
|
|
20
|
+
MINUTES: 'minutes',
|
|
21
|
+
SECOND: 'second'
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// duration
|
|
25
|
+
var DURATION_FORMATS_MAP = {
|
|
26
|
+
H_MM: 'h:mm',
|
|
27
|
+
H_MM_SS: 'h:mm:ss',
|
|
28
|
+
H_MM_SS_S: 'h:mm:ss.s',
|
|
29
|
+
H_MM_SS_SS: 'h:mm:ss.ss',
|
|
30
|
+
H_MM_SS_SSS: 'h:mm:ss.sss'
|
|
31
|
+
};
|
|
32
|
+
var DURATION_FORMATS = [{
|
|
33
|
+
name: DURATION_FORMATS_MAP.H_MM,
|
|
34
|
+
type: DURATION_FORMATS_MAP.H_MM
|
|
35
|
+
}, {
|
|
36
|
+
name: DURATION_FORMATS_MAP.H_MM_SS,
|
|
37
|
+
type: DURATION_FORMATS_MAP.H_MM_SS
|
|
38
|
+
}];
|
|
39
|
+
var DURATION_DECIMAL_DIGITS = (_DURATION_DECIMAL_DIG = {}, _defineProperty(_DURATION_DECIMAL_DIG, DURATION_FORMATS_MAP.H_MM, 0), _defineProperty(_DURATION_DECIMAL_DIG, DURATION_FORMATS_MAP.H_MM_SS, 0), _defineProperty(_DURATION_DECIMAL_DIG, DURATION_FORMATS_MAP.H_MM_SS_S, 1), _defineProperty(_DURATION_DECIMAL_DIG, DURATION_FORMATS_MAP.H_MM_SS_SS, 2), _defineProperty(_DURATION_DECIMAL_DIG, DURATION_FORMATS_MAP.H_MM_SS_SSS, 3), _DURATION_DECIMAL_DIG);
|
|
40
|
+
var DURATION_ZERO_DISPLAY = (_DURATION_ZERO_DISPLA = {}, _defineProperty(_DURATION_ZERO_DISPLA, DURATION_FORMATS_MAP.H_MM, '0:00'), _defineProperty(_DURATION_ZERO_DISPLA, DURATION_FORMATS_MAP.H_MM_SS, '0:00'), _defineProperty(_DURATION_ZERO_DISPLA, DURATION_FORMATS_MAP.H_MM_SS_S, '0:00.0'), _defineProperty(_DURATION_ZERO_DISPLA, DURATION_FORMATS_MAP.H_MM_SS_SS, '0:00.00'), _defineProperty(_DURATION_ZERO_DISPLA, DURATION_FORMATS_MAP.H_MM_SS_SSS, '0:00.000'), _DURATION_ZERO_DISPLA);
|
|
41
|
+
|
|
42
|
+
// number
|
|
43
|
+
var DEFAULT_NUMBER_FORMAT = 'number';
|
|
44
|
+
|
|
45
|
+
export { COLLABORATOR_COLUMN_TYPES, COLUMNS_ICON_CONFIG, DATE_COLUMN_OPTIONS, DATE_UNIT, DEFAULT_DATE_FORMAT, DEFAULT_NUMBER_FORMAT, DURATION_DECIMAL_DIGITS, DURATION_FORMATS, DURATION_FORMATS_MAP, DURATION_ZERO_DISPLAY, NUMERIC_COLUMNS_TYPES };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { CellType } from '../cell-type.js';
|
|
3
|
+
import { FILTER_TERM_MODIFIER_TYPE } from './filter-modifier.js';
|
|
4
|
+
import { FILTER_PREDICATE_TYPE } from './filter-predicate.js';
|
|
5
|
+
|
|
6
|
+
var _FILTER_COLUMN_OPTION;
|
|
7
|
+
var textPredicates = [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY, FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID];
|
|
8
|
+
var numberPredicates = [FILTER_PREDICATE_TYPE.EQUAL, FILTER_PREDICATE_TYPE.NOT_EQUAL, FILTER_PREDICATE_TYPE.LESS, FILTER_PREDICATE_TYPE.GREATER, FILTER_PREDICATE_TYPE.LESS_OR_EQUAL, FILTER_PREDICATE_TYPE.GREATER_OR_EQUAL, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
9
|
+
var datePredicates = [FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_WITHIN, FILTER_PREDICATE_TYPE.IS_BEFORE, FILTER_PREDICATE_TYPE.IS_AFTER, FILTER_PREDICATE_TYPE.IS_ON_OR_BEFORE, FILTER_PREDICATE_TYPE.IS_ON_OR_AFTER, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY];
|
|
10
|
+
var geolocationPredicates = textPredicates.filter(function (predicate) {
|
|
11
|
+
return predicate !== FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID;
|
|
12
|
+
});
|
|
13
|
+
var dateTermModifiers = [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];
|
|
14
|
+
var FILTER_COLUMN_OPTIONS = (_FILTER_COLUMN_OPTION = {}, _defineProperty(_FILTER_COLUMN_OPTION, CellType.TEXT, {
|
|
15
|
+
filterPredicateList: textPredicates
|
|
16
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.NUMBER, {
|
|
17
|
+
filterPredicateList: numberPredicates
|
|
18
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.CHECKBOX, {
|
|
19
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.IS]
|
|
20
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.DATE, {
|
|
21
|
+
filterPredicateList: datePredicates,
|
|
22
|
+
filterTermModifierList: dateTermModifiers
|
|
23
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.CTIME, {
|
|
24
|
+
filterPredicateList: datePredicates,
|
|
25
|
+
filterTermModifierList: dateTermModifiers
|
|
26
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.MTIME, {
|
|
27
|
+
filterPredicateList: datePredicates,
|
|
28
|
+
filterTermModifierList: dateTermModifiers
|
|
29
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.SINGLE_SELECT, {
|
|
30
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.IS_ANY_OF, FILTER_PREDICATE_TYPE.IS_NONE_OF, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
31
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.MULTIPLE_SELECT, {
|
|
32
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.HAS_ANY_OF, FILTER_PREDICATE_TYPE.HAS_ALL_OF, FILTER_PREDICATE_TYPE.HAS_NONE_OF, FILTER_PREDICATE_TYPE.IS_EXACTLY, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
33
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.COLLABORATOR, {
|
|
34
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.HAS_ANY_OF, FILTER_PREDICATE_TYPE.HAS_ALL_OF, FILTER_PREDICATE_TYPE.HAS_NONE_OF, FILTER_PREDICATE_TYPE.IS_EXACTLY, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY, FILTER_PREDICATE_TYPE.INCLUDE_ME]
|
|
35
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.CREATOR, {
|
|
36
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.INCLUDE_ME, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT]
|
|
37
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.GEOLOCATION, {
|
|
38
|
+
filterPredicateList: geolocationPredicates
|
|
39
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.FORMULA, {}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.LINK_FORMULA, {}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.LINK, {}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.LAST_MODIFIER, {
|
|
40
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.INCLUDE_ME, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT]
|
|
41
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.AUTO_NUMBER, {
|
|
42
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT]
|
|
43
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.EMAIL, {
|
|
44
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
45
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.URL, {
|
|
46
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.CONTAINS, FILTER_PREDICATE_TYPE.NOT_CONTAIN, FILTER_PREDICATE_TYPE.IS, FILTER_PREDICATE_TYPE.IS_NOT, FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
47
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.IMAGE, {
|
|
48
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
49
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.FILE, {
|
|
50
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
51
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.LONG_TEXT, {
|
|
52
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
53
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.DURATION, {
|
|
54
|
+
filterPredicateList: numberPredicates
|
|
55
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.RATE, {
|
|
56
|
+
filterPredicateList: numberPredicates
|
|
57
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.DIGITAL_SIGN, {
|
|
58
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.EMPTY, FILTER_PREDICATE_TYPE.NOT_EMPTY]
|
|
59
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.STRING, {
|
|
60
|
+
filterPredicateList: textPredicates
|
|
61
|
+
}), _defineProperty(_FILTER_COLUMN_OPTION, CellType.BOOL, {
|
|
62
|
+
filterPredicateList: [FILTER_PREDICATE_TYPE.IS]
|
|
63
|
+
}), _FILTER_COLUMN_OPTION);
|
|
64
|
+
|
|
65
|
+
export { FILTER_COLUMN_OPTIONS };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FILTER_TERM_MODIFIER_TYPE } from './filter-modifier.js';
|
|
2
|
+
|
|
3
|
+
var filterTermModifierNotWithin = [FILTER_TERM_MODIFIER_TYPE.EXACT_DATE, 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];
|
|
4
|
+
var filterTermModifierIsWithin = [FILTER_TERM_MODIFIER_TYPE.THE_PAST_WEEK, FILTER_TERM_MODIFIER_TYPE.THE_PAST_MONTH, FILTER_TERM_MODIFIER_TYPE.THE_PAST_YEAR, FILTER_TERM_MODIFIER_TYPE.THIS_WEEK, FILTER_TERM_MODIFIER_TYPE.THIS_MONTH, FILTER_TERM_MODIFIER_TYPE.THIS_YEAR, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_WEEK, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_MONTH, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_YEAR, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_NUMBERS_OF_DAYS, FILTER_TERM_MODIFIER_TYPE.THE_PAST_NUMBERS_OF_DAYS];
|
|
5
|
+
|
|
6
|
+
export { filterTermModifierIsWithin, filterTermModifierNotWithin };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
|
|
3
|
+
var _FILTER_TERM_MODIFIER;
|
|
4
|
+
var FILTER_TERM_MODIFIER_TYPE = {
|
|
5
|
+
TODAY: 'today',
|
|
6
|
+
TOMORROW: 'tomorrow',
|
|
7
|
+
YESTERDAY: 'yesterday',
|
|
8
|
+
ONE_WEEK_AGO: 'one_week_ago',
|
|
9
|
+
ONE_WEEK_FROM_NOW: 'one_week_from_now',
|
|
10
|
+
ONE_MONTH_AGO: 'one_month_ago',
|
|
11
|
+
ONE_MONTH_FROM_NOW: 'one_month_from_now',
|
|
12
|
+
NUMBER_OF_DAYS_AGO: 'number_of_days_ago',
|
|
13
|
+
NUMBER_OF_DAYS_FROM_NOW: 'number_of_days_from_now',
|
|
14
|
+
EXACT_DATE: 'exact_date',
|
|
15
|
+
THE_PAST_WEEK: 'the_past_week',
|
|
16
|
+
THE_PAST_MONTH: 'the_past_month',
|
|
17
|
+
THE_PAST_YEAR: 'the_past_year',
|
|
18
|
+
THE_NEXT_WEEK: 'the_next_week',
|
|
19
|
+
THE_NEXT_MONTH: 'the_next_month',
|
|
20
|
+
THE_NEXT_YEAR: 'the_next_year',
|
|
21
|
+
THE_NEXT_NUMBERS_OF_DAYS: 'the_next_numbers_of_days',
|
|
22
|
+
THE_PAST_NUMBERS_OF_DAYS: 'the_past_numbers_of_days',
|
|
23
|
+
THIS_WEEK: 'this_week',
|
|
24
|
+
THIS_MONTH: 'this_month',
|
|
25
|
+
THIS_YEAR: 'this_year'
|
|
26
|
+
};
|
|
27
|
+
var FILTER_TERM_MODIFIER_SHOW = (_FILTER_TERM_MODIFIER = {}, _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.TODAY, 'today'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.TOMORROW, 'tomorrow'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.YESTERDAY, 'yesterday'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_AGO, 'one week ago'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.ONE_WEEK_FROM_NOW, 'one week from now'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_AGO, 'one month ago'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.ONE_MONTH_FROM_NOW, 'one month from now'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_AGO, 'number of days ago'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.NUMBER_OF_DAYS_FROM_NOW, 'number of days from now'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.EXACT_DATE, 'exact date'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_PAST_WEEK, 'the past week'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_PAST_MONTH, 'the past month'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_PAST_YEAR, 'the past year'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_WEEK, 'the next week'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_MONTH, 'the next month'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_YEAR, 'the next year'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_NEXT_NUMBERS_OF_DAYS, 'the next numbers of days...'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THE_PAST_NUMBERS_OF_DAYS, 'the past numbers of days...'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THIS_WEEK, 'this week'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THIS_MONTH, 'this month'), _defineProperty(_FILTER_TERM_MODIFIER, FILTER_TERM_MODIFIER_TYPE.THIS_YEAR, 'this year'), _FILTER_TERM_MODIFIER);
|
|
28
|
+
|
|
29
|
+
export { FILTER_TERM_MODIFIER_SHOW, FILTER_TERM_MODIFIER_TYPE };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
|
|
3
|
+
var _FILTER_PREDICATE_SHO;
|
|
4
|
+
var FILTER_PREDICATE_TYPE = {
|
|
5
|
+
CONTAINS: 'contains',
|
|
6
|
+
NOT_CONTAIN: 'does_not_contain',
|
|
7
|
+
IS: 'is',
|
|
8
|
+
IS_NOT: 'is_not',
|
|
9
|
+
EQUAL: 'equal',
|
|
10
|
+
NOT_EQUAL: 'not_equal',
|
|
11
|
+
LESS: 'less',
|
|
12
|
+
GREATER: 'greater',
|
|
13
|
+
LESS_OR_EQUAL: 'less_or_equal',
|
|
14
|
+
GREATER_OR_EQUAL: 'greater_or_equal',
|
|
15
|
+
EMPTY: 'is_empty',
|
|
16
|
+
NOT_EMPTY: 'is_not_empty',
|
|
17
|
+
IS_WITHIN: 'is_within',
|
|
18
|
+
IS_BEFORE: 'is_before',
|
|
19
|
+
IS_AFTER: 'is_after',
|
|
20
|
+
IS_ON_OR_BEFORE: 'is_on_or_before',
|
|
21
|
+
IS_ON_OR_AFTER: 'is_on_or_after',
|
|
22
|
+
HAS_ANY_OF: 'has_any_of',
|
|
23
|
+
HAS_ALL_OF: 'has_all_of',
|
|
24
|
+
HAS_NONE_OF: 'has_none_of',
|
|
25
|
+
IS_EXACTLY: 'is_exactly',
|
|
26
|
+
INCLUDE_ME: 'include_me',
|
|
27
|
+
IS_CURRENT_USER_ID: 'is_current_user_ID',
|
|
28
|
+
IS_ANY_OF: 'is_any_of',
|
|
29
|
+
IS_NONE_OF: 'is_none_of'
|
|
30
|
+
};
|
|
31
|
+
var FILTER_PREDICATE_SHOW = (_FILTER_PREDICATE_SHO = {}, _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.CONTAINS, 'contains'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.NOT_CONTAIN, 'does not contain'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS, 'is'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_NOT, 'is not'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.EQUAL, "="), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.NOT_EQUAL, "\u2260"), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.LESS, "<"), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.GREATER, ">"), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.LESS_OR_EQUAL, "\u2264"), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.GREATER_OR_EQUAL, "\u2265"), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.EMPTY, 'is empty'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.NOT_EMPTY, 'is not empty'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_WITHIN, 'is within...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_BEFORE, 'is before...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_AFTER, 'is after...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_ON_OR_BEFORE, 'is on or before...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_ON_OR_AFTER, 'is on or after...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.HAS_ANY_OF, 'has any of...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.HAS_ALL_OF, 'has all of...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.HAS_NONE_OF, 'has none of...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_EXACTLY, 'is exactly...'), _defineProperty(_FILTER_PREDICATE_SHO, FILTER_PREDICATE_TYPE.IS_CURRENT_USER_ID, 'is current user\'s ID'), _FILTER_PREDICATE_SHO);
|
|
32
|
+
|
|
33
|
+
export { FILTER_PREDICATE_SHOW, FILTER_PREDICATE_TYPE };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { FILTER_COLUMN_OPTIONS } from './filter-column-options.js';
|
|
2
|
+
export { FILTER_TERM_MODIFIER_SHOW, FILTER_TERM_MODIFIER_TYPE } from './filter-modifier.js';
|
|
3
|
+
export { FILTER_PREDICATE_SHOW, FILTER_PREDICATE_TYPE } from './filter-predicate.js';
|
|
4
|
+
export { filterTermModifierIsWithin, filterTermModifierNotWithin } from './filter-is-within.js';
|
|
5
|
+
|
|
6
|
+
var FILTER_ERR_MSG = {
|
|
7
|
+
INVALID_FILTER: 'invalid filter',
|
|
8
|
+
INCOMPLETE_FILTER: 'incomplete filter',
|
|
9
|
+
COLUMN_MISSING: 'the column to filter does not exist',
|
|
10
|
+
COLUMN_NOT_SUPPORTED: 'the column to filter is not supported',
|
|
11
|
+
UNMATCHED_PREDICATE: 'unmatched filter predicate',
|
|
12
|
+
UNMATCHED_MODIFIER: 'unmatched filter modifier',
|
|
13
|
+
INVALID_TERM: 'invalid filter term'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { FILTER_ERR_MSG };
|