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.
@@ -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 {userId} username
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 {userId} username
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;
@@ -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)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-utils",
3
- "version": "4.2.1",
3
+ "version": "4.2.3-beta.1",
4
4
  "description": "dtable common utils",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",