dtable-utils 4.2.1 → 4.2.3-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/dist/index.js +1 -1
- package/es/cell-value-get/cell-value.js +12 -0
- package/es/cell-value-get/department.js +16 -0
- package/es/color/row-color.js +10 -5
- package/es/constants/cell-type.js +1 -0
- package/es/constants/column.js +12 -3
- package/es/constants/filter/filter-column-options.js +2 -0
- package/es/filter/filter-column/department-single-select.js +87 -0
- package/es/filter/filter-row.js +28 -10
- package/es/index.js +3 -2
- package/es/validate/filter.js +11 -1
- package/lib/cell-value-get/cell-value.js +12 -0
- package/lib/cell-value-get/department.js +20 -0
- package/lib/color/row-color.js +10 -5
- package/lib/constants/cell-type.js +1 -0
- package/lib/constants/column.js +12 -2
- package/lib/constants/filter/filter-column-options.js +2 -0
- package/lib/filter/filter-column/department-single-select.js +91 -0
- package/lib/filter/filter-row.js +28 -10
- package/lib/index.js +6 -3
- package/lib/validate/filter.js +10 -0
- package/package.json +1 -1
package/lib/filter/filter-row.js
CHANGED
|
@@ -17,6 +17,7 @@ var multipleSelect = require('./filter-column/multiple-select.js');
|
|
|
17
17
|
var number = require('./filter-column/number.js');
|
|
18
18
|
var singleSelect = require('./filter-column/single-select.js');
|
|
19
19
|
var link = require('./filter-column/link.js');
|
|
20
|
+
var departmentSingleSelect = require('./filter-column/department-single-select.js');
|
|
20
21
|
var index = require('../constants/filter/index.js');
|
|
21
22
|
var date = require('../date.js');
|
|
22
23
|
var cellType = require('../constants/cell-type.js');
|
|
@@ -25,7 +26,8 @@ var column = require('../constants/column.js');
|
|
|
25
26
|
var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
26
27
|
var formulaRow = _ref.formulaRow,
|
|
27
28
|
username = _ref.username,
|
|
28
|
-
userId = _ref.userId
|
|
29
|
+
userId = _ref.userId,
|
|
30
|
+
userDepartmentIdsMap = _ref.userDepartmentIdsMap;
|
|
29
31
|
var column_key = filter.column_key,
|
|
30
32
|
column$1 = filter.column;
|
|
31
33
|
var cellValue = row[column_key];
|
|
@@ -42,6 +44,10 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
42
44
|
{
|
|
43
45
|
return multipleSelect.multipleSelectFilter(cellValue, filter);
|
|
44
46
|
}
|
|
47
|
+
case cellType.CellType.DEPARTMENT_SINGLE_SELECT:
|
|
48
|
+
{
|
|
49
|
+
return departmentSingleSelect.departmentSingleSelectFilter(cellValue, filter, userDepartmentIdsMap);
|
|
50
|
+
}
|
|
45
51
|
case cellType.CellType.DURATION:
|
|
46
52
|
case cellType.CellType.NUMBER:
|
|
47
53
|
case cellType.CellType.RATE:
|
|
@@ -126,6 +132,7 @@ var getFilterResult = function getFilterResult(row, filter, _ref) {
|
|
|
126
132
|
* @param {object} formulaRow
|
|
127
133
|
* @param {string} username
|
|
128
134
|
* @param {string} userId
|
|
135
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
129
136
|
* @returns filter result, bool
|
|
130
137
|
*/
|
|
131
138
|
var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
@@ -134,13 +141,16 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
134
141
|
formulaRow = _ref2$formulaRow === void 0 ? {} : _ref2$formulaRow,
|
|
135
142
|
_ref2$username = _ref2.username,
|
|
136
143
|
username = _ref2$username === void 0 ? '' : _ref2$username,
|
|
137
|
-
userId = _ref2.userId
|
|
144
|
+
userId = _ref2.userId,
|
|
145
|
+
_ref2$userDepartmentI = _ref2.userDepartmentIdsMap,
|
|
146
|
+
userDepartmentIdsMap = _ref2$userDepartmentI === void 0 ? {} : _ref2$userDepartmentI;
|
|
138
147
|
if (filterConjunction === index.FILTER_CONJUNCTION_TYPE.AND) {
|
|
139
148
|
return filters.every(function (filter) {
|
|
140
149
|
return getFilterResult(row, filter, {
|
|
141
150
|
formulaRow: formulaRow,
|
|
142
151
|
username: username,
|
|
143
|
-
userId: userId
|
|
152
|
+
userId: userId,
|
|
153
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
144
154
|
});
|
|
145
155
|
});
|
|
146
156
|
}
|
|
@@ -149,7 +159,8 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
149
159
|
return getFilterResult(row, filter, {
|
|
150
160
|
formulaRow: formulaRow,
|
|
151
161
|
username: username,
|
|
152
|
-
userId: userId
|
|
162
|
+
userId: userId,
|
|
163
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
153
164
|
});
|
|
154
165
|
});
|
|
155
166
|
}
|
|
@@ -163,13 +174,15 @@ var filterRow = function filterRow(row, filterConjunction, filters) {
|
|
|
163
174
|
* @param {array} rows e.g. [{ _id, .... }, ...]
|
|
164
175
|
* @param {object} formulaRows
|
|
165
176
|
* @param {string} username
|
|
166
|
-
* @param {
|
|
177
|
+
* @param {string} userId
|
|
178
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
167
179
|
* @returns filtered rows ids, array
|
|
168
180
|
*/
|
|
169
181
|
var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
170
182
|
var formulaRows = _ref3.formulaRows,
|
|
171
183
|
username = _ref3.username,
|
|
172
|
-
userId = _ref3.userId
|
|
184
|
+
userId = _ref3.userId,
|
|
185
|
+
userDepartmentIdsMap = _ref3.userDepartmentIdsMap;
|
|
173
186
|
var filteredRows = [];
|
|
174
187
|
var formattedFilters = core.getFormattedFilters(filters);
|
|
175
188
|
rows.forEach(function (row) {
|
|
@@ -178,7 +191,8 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
178
191
|
if (filterRow(row, filterConjunction, formattedFilters, {
|
|
179
192
|
formulaRow: formulaRow,
|
|
180
193
|
username: username,
|
|
181
|
-
userId: userId
|
|
194
|
+
userId: userId,
|
|
195
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
182
196
|
})) {
|
|
183
197
|
filteredRows.push(rowId);
|
|
184
198
|
}
|
|
@@ -195,7 +209,8 @@ var filterRows = function filterRows(filterConjunction, filters, rows, _ref3) {
|
|
|
195
209
|
* @param {object} table e.g. { columns, ... }
|
|
196
210
|
* @param {object} formulaRows
|
|
197
211
|
* @param {string} username
|
|
198
|
-
* @param {
|
|
212
|
+
* @param {string} userId
|
|
213
|
+
* @param {object} userDepartmentIdsMap e.g. { current_user_department_ids: [8, 10], current_user_department_and_sub_ids: [8, 10, 12, 34] }
|
|
199
214
|
* @returns filtered rows: row_ids and error message: error_message, object
|
|
200
215
|
*/
|
|
201
216
|
var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFormulaCalculation(filterConjunction, filters, rows, table) {
|
|
@@ -205,7 +220,9 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
205
220
|
_ref4$username = _ref4.username,
|
|
206
221
|
username = _ref4$username === void 0 ? null : _ref4$username,
|
|
207
222
|
_ref4$userId = _ref4.userId,
|
|
208
|
-
userId = _ref4$userId === void 0 ? null : _ref4$userId
|
|
223
|
+
userId = _ref4$userId === void 0 ? null : _ref4$userId,
|
|
224
|
+
_ref4$userDepartmentI = _ref4.userDepartmentIdsMap,
|
|
225
|
+
userDepartmentIdsMap = _ref4$userDepartmentI === void 0 ? null : _ref4$userDepartmentI;
|
|
209
226
|
var columns = table.columns;
|
|
210
227
|
var validFilters = [];
|
|
211
228
|
try {
|
|
@@ -225,7 +242,8 @@ var getFilteredRowsWithoutFormulaCalculation = function getFilteredRowsWithoutFo
|
|
|
225
242
|
filteredRows = filterRows(filterConjunction, validFilters, rows, {
|
|
226
243
|
formulaRows: formulaRows,
|
|
227
244
|
username: username,
|
|
228
|
-
userId: userId
|
|
245
|
+
userId: userId,
|
|
246
|
+
userDepartmentIdsMap: userDepartmentIdsMap
|
|
229
247
|
});
|
|
230
248
|
}
|
|
231
249
|
return {
|
package/lib/index.js
CHANGED
|
@@ -29,6 +29,7 @@ var number = require('./cell-value-get/number.js');
|
|
|
29
29
|
var option = require('./cell-value-get/option.js');
|
|
30
30
|
var collaborator = require('./cell-value-get/collaborator.js');
|
|
31
31
|
var geolocation = require('./cell-value-get/geolocation.js');
|
|
32
|
+
var department = require('./cell-value-get/department.js');
|
|
32
33
|
var digitalSign = require('./cell-value-get/digital-sign.js');
|
|
33
34
|
var longText = require('./cell-value-get/long-text.js');
|
|
34
35
|
var cellValue = require('./cell-value-get/cell-value.js');
|
|
@@ -58,6 +59,7 @@ var multipleSelect = require('./filter/filter-column/multiple-select.js');
|
|
|
58
59
|
var number$4 = require('./filter/filter-column/number.js');
|
|
59
60
|
var singleSelect = require('./filter/filter-column/single-select.js');
|
|
60
61
|
var link = require('./filter/filter-column/link.js');
|
|
62
|
+
var filterPredicate = require('./constants/filter/filter-predicate.js');
|
|
61
63
|
var filterRow = require('./filter/filter-row.js');
|
|
62
64
|
var core$5 = require('./sort/core.js');
|
|
63
65
|
var checkbox$1 = require('./sort/sort-column/checkbox.js');
|
|
@@ -78,7 +80,6 @@ var columnColor = require('./color/column-color.js');
|
|
|
78
80
|
var rowColor = require('./color/row-color.js');
|
|
79
81
|
var filterColumnOptions = require('./constants/filter/filter-column-options.js');
|
|
80
82
|
var filterModifier = require('./constants/filter/filter-modifier.js');
|
|
81
|
-
var filterPredicate = require('./constants/filter/filter-predicate.js');
|
|
82
83
|
var filterIsWithin = require('./constants/filter/filter-is-within.js');
|
|
83
84
|
|
|
84
85
|
|
|
@@ -93,6 +94,7 @@ exports.DATE_FORMAT_MAP = column.DATE_FORMAT_MAP;
|
|
|
93
94
|
exports.DATE_UNIT = column.DATE_UNIT;
|
|
94
95
|
exports.DEFAULT_DATE_FORMAT = column.DEFAULT_DATE_FORMAT;
|
|
95
96
|
exports.DEFAULT_NUMBER_FORMAT = column.DEFAULT_NUMBER_FORMAT;
|
|
97
|
+
exports.DEPARTMENT_SELECT_RANGE_MAP = column.DEPARTMENT_SELECT_RANGE_MAP;
|
|
96
98
|
exports.DURATION_DECIMAL_DIGITS = column.DURATION_DECIMAL_DIGITS;
|
|
97
99
|
exports.DURATION_FORMATS = column.DURATION_FORMATS;
|
|
98
100
|
exports.DURATION_FORMATS_MAP = column.DURATION_FORMATS_MAP;
|
|
@@ -168,6 +170,7 @@ exports.getCollaboratorsName = collaborator.getCollaboratorsName;
|
|
|
168
170
|
exports.getCollaboratorsNames = collaborator.getCollaboratorsNames;
|
|
169
171
|
exports.getGeolocationByGranularity = geolocation.getGeolocationByGranularity;
|
|
170
172
|
exports.getGeolocationDisplayString = geolocation.getGeolocationDisplayString;
|
|
173
|
+
exports.getDepartmentName = department.getDepartmentName;
|
|
171
174
|
exports.getDigitalSignImageUrl = digitalSign.getDigitalSignImageUrl;
|
|
172
175
|
exports.getLongtextDisplayString = longText.getLongtextDisplayString;
|
|
173
176
|
exports.getCellValueDisplayString = cellValue.getCellValueDisplayString;
|
|
@@ -213,6 +216,8 @@ exports.multipleSelectFilter = multipleSelect.multipleSelectFilter;
|
|
|
213
216
|
exports.numberFilter = number$4.numberFilter;
|
|
214
217
|
exports.singleSelectFilter = singleSelect.singleSelectFilter;
|
|
215
218
|
exports.linkFilter = link.linkFilter;
|
|
219
|
+
exports.FILTER_PREDICATE_SHOW = filterPredicate.FILTER_PREDICATE_SHOW;
|
|
220
|
+
exports.FILTER_PREDICATE_TYPE = filterPredicate.FILTER_PREDICATE_TYPE;
|
|
216
221
|
exports.filterRow = filterRow.filterRow;
|
|
217
222
|
exports.filterRows = filterRow.filterRows;
|
|
218
223
|
exports.getFilteredRowsWithoutFormulaCalculation = filterRow.getFilteredRowsWithoutFormulaCalculation;
|
|
@@ -245,7 +250,5 @@ exports.RowColorUtils = rowColor["default"];
|
|
|
245
250
|
exports.FILTER_COLUMN_OPTIONS = filterColumnOptions.FILTER_COLUMN_OPTIONS;
|
|
246
251
|
exports.FILTER_TERM_MODIFIER_SHOW = filterModifier.FILTER_TERM_MODIFIER_SHOW;
|
|
247
252
|
exports.FILTER_TERM_MODIFIER_TYPE = filterModifier.FILTER_TERM_MODIFIER_TYPE;
|
|
248
|
-
exports.FILTER_PREDICATE_SHOW = filterPredicate.FILTER_PREDICATE_SHOW;
|
|
249
|
-
exports.FILTER_PREDICATE_TYPE = filterPredicate.FILTER_PREDICATE_TYPE;
|
|
250
253
|
exports.filterTermModifierIsWithin = filterIsWithin.filterTermModifierIsWithin;
|
|
251
254
|
exports.filterTermModifierNotWithin = filterIsWithin.filterTermModifierNotWithin;
|
package/lib/validate/filter.js
CHANGED
|
@@ -354,6 +354,16 @@ var ValidateFilter = /*#__PURE__*/function () {
|
|
|
354
354
|
{
|
|
355
355
|
return this.isValidTermType(term, TERM_TYPE_MAP.ARRAY);
|
|
356
356
|
}
|
|
357
|
+
case cellType.CellType.DEPARTMENT_SINGLE_SELECT:
|
|
358
|
+
{
|
|
359
|
+
if (PREDICATES_REQUIRE_ARRAY_TERM.includes(predicate)) {
|
|
360
|
+
return this.isValidTermType(term, TERM_TYPE_MAP.ARRAY);
|
|
361
|
+
}
|
|
362
|
+
if ([column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT, column.DEPARTMENT_SELECT_RANGE_MAP.CURRENT_USER_DEPARTMENT_AND_SUB].includes(term)) {
|
|
363
|
+
return true;
|
|
364
|
+
}
|
|
365
|
+
return this.isValidTermType(term, TERM_TYPE_MAP.NUMBER);
|
|
366
|
+
}
|
|
357
367
|
case cellType.CellType.MULTIPLE_SELECT:
|
|
358
368
|
{
|
|
359
369
|
if (!this.isValidTermType(term, TERM_TYPE_MAP.ARRAY)) {
|