dtable-utils 4.4.3 → 4.4.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/index.js +1 -1
  2. package/es/archive/clause-module/search.js +1 -1
  3. package/es/archive/sql-generator/filter-condition.js +52 -5
  4. package/es/cell-value-set/duration.js +3 -1
  5. package/es/cell-value-set/geolocation.js +4 -4
  6. package/es/cell-value-set/image.js +3 -3
  7. package/es/cell-value-set/multiple-select.js +6 -6
  8. package/es/cell-value-set/single-select.js +2 -2
  9. package/es/filter/core.js +18 -4
  10. package/es/filter/filter-column/array.js +14 -5
  11. package/es/filter/filter-column/department-multiple-select.js +117 -0
  12. package/es/filter/filter-column/department-single-select.js +1 -15
  13. package/es/filter/filter-column/formula.js +4 -2
  14. package/es/filter/filter-column/link.js +4 -2
  15. package/es/filter/filter-row.js +7 -3
  16. package/es/index.js +2 -1
  17. package/es/row/core.js +132 -1
  18. package/es/validate/filter.js +4 -1
  19. package/lib/archive/clause-module/search.js +1 -1
  20. package/lib/archive/sql-generator/filter-condition.js +52 -5
  21. package/lib/cell-value-set/duration.js +3 -1
  22. package/lib/cell-value-set/geolocation.js +4 -4
  23. package/lib/cell-value-set/image.js +3 -3
  24. package/lib/cell-value-set/multiple-select.js +6 -6
  25. package/lib/cell-value-set/single-select.js +2 -2
  26. package/lib/filter/core.js +20 -3
  27. package/lib/filter/filter-column/array.js +14 -5
  28. package/lib/filter/filter-column/department-multiple-select.js +125 -0
  29. package/lib/filter/filter-column/department-single-select.js +11 -25
  30. package/lib/filter/filter-column/formula.js +4 -2
  31. package/lib/filter/filter-column/link.js +4 -2
  32. package/lib/filter/filter-row.js +7 -3
  33. package/lib/index.js +3 -0
  34. package/lib/row/core.js +133 -0
  35. package/lib/validate/filter.js +4 -1
  36. package/package.json +2 -1
package/lib/row/core.js CHANGED
@@ -3,6 +3,17 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _typeof = require('@babel/runtime/helpers/typeof');
6
+ var core = require('../table/core.js');
7
+ var cellType = require('../constants/cell-type.js');
8
+ var column = require('../constants/column.js');
9
+ require('../constants/filter/filter-column-options.js');
10
+ require('../constants/filter/filter-modifier.js');
11
+ require('../constants/filter/filter-predicate.js');
12
+ require('../constants/filter/filter-is-within.js');
13
+ require('../constants/formula.js');
14
+ require('../constants/sort.js');
15
+ require('../constants/group.js');
16
+ var date = require('../date.js');
6
17
 
7
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
19
 
@@ -16,5 +27,127 @@ var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
16
27
  var isTableRows = function isTableRows(rows) {
17
28
  return Array.isArray(rows) && _typeof__default["default"](rows[0]) === 'object';
18
29
  };
30
+ var updateTableRowsWithRowsData = function updateTableRowsWithRowsData(tables, tableId) {
31
+ var rowsData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
32
+ var table = core.getTableById(tables, tableId);
33
+ var idRowDataMap = {};
34
+ rowsData.forEach(function (rowData) {
35
+ return idRowDataMap[rowData._id] = rowData;
36
+ });
37
+ table.rows.forEach(function (row, index) {
38
+ var rowId = row._id;
39
+ var newRowData = idRowDataMap[rowId];
40
+ if (!newRowData) {
41
+ return;
42
+ }
43
+ var newRow = Object.assign({}, row, newRowData);
44
+ table.rows[index] = newRow;
45
+ table.id_row_map[rowId] = newRow;
46
+ });
47
+ };
48
+ var getRowDefaultData = function getRowDefaultData(table, collaborators, _ref) {
49
+ var username = _ref.username,
50
+ userId = _ref.userId,
51
+ userDepartmentIdsMap = _ref.userDepartmentIdsMap;
52
+ var columns = table.columns;
53
+ var defaultValueData = {};
54
+ columns.forEach(function (column$1) {
55
+ var columnType = column$1.type,
56
+ columnData = column$1.data;
57
+ if (!column.FILL_DEFAULT_VALUE_COLUMNS_TYPE.includes(columnType)) return;
58
+ var enable_fill_default_value = columnData && columnData.enable_fill_default_value;
59
+ if (!enable_fill_default_value) return;
60
+ var defaultValue = columnData.default_value;
61
+ if (columnType === cellType.CellType.DATE) {
62
+ var defaultValueType = columnData.default_date_type,
63
+ dateFormat = columnData.format;
64
+ var showHourAndMinute = dateFormat.indexOf('HH:mm');
65
+ var normalFormat = showHourAndMinute > -1 ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD';
66
+ switch (defaultValueType) {
67
+ case column.DATE_DEFAULT_TYPES.SPECIFIC_DATE:
68
+ {
69
+ var validDate = date.DateUtils.getValidDate(defaultValue);
70
+ if (!validDate) break;
71
+ defaultValueData[column$1.key] = date.DateUtils.format(defaultValue, normalFormat);
72
+ break;
73
+ }
74
+ case column.DATE_DEFAULT_TYPES.CURRENT_DATE:
75
+ {
76
+ var date$1 = new Date();
77
+ var today = date.DateUtils.format(date$1, normalFormat);
78
+ defaultValueData[column$1.key] = today;
79
+ break;
80
+ }
81
+ case column.DATE_DEFAULT_TYPES.DAYS_BEFORE:
82
+ case column.DATE_DEFAULT_TYPES.DAYS_AFTER:
83
+ {
84
+ var num = Number(defaultValue);
85
+ if (!Number.isInteger(num)) {
86
+ break;
87
+ }
88
+ var _date = new Date();
89
+ var year = _date.getFullYear();
90
+ var month = _date.getMonth();
91
+ var day = _date.getDate();
92
+ var hours = _date.getHours();
93
+ var minutes = _date.getMinutes();
94
+ var numberOfDaysFromNow;
95
+ if (defaultValueType === column.DATE_DEFAULT_TYPES.DAYS_AFTER) {
96
+ numberOfDaysFromNow = new Date(year, month, day + num, hours, minutes);
97
+ } else if (defaultValueType === column.DATE_DEFAULT_TYPES.DAYS_BEFORE) {
98
+ numberOfDaysFromNow = new Date(year, month, day - num, hours, minutes);
99
+ }
100
+ var _validDate = date.DateUtils.format(numberOfDaysFromNow, normalFormat);
101
+ defaultValueData[column$1.key] = _validDate;
102
+ break;
103
+ }
104
+ }
105
+ } else if (columnType === cellType.CellType.COLLABORATOR) {
106
+ var default_collaborator_type = columnData.default_collaborator_type;
107
+ if (default_collaborator_type === 'current_user') {
108
+ defaultValueData[column$1.key] = [username];
109
+ } else {
110
+ defaultValueData[column$1.key] = defaultValue;
111
+ }
112
+ } else if (columnType === cellType.CellType.DEPARTMENT_SINGLE_SELECT) {
113
+ if (defaultValue === 'current_user_department') {
114
+ var currentUserDepartmentIds = userDepartmentIdsMap && userDepartmentIdsMap.current_user_department_ids;
115
+ if (!Array.isArray(currentUserDepartmentIds) || currentUserDepartmentIds.length === 0) {
116
+ defaultValueData[column$1.key] = null;
117
+ return;
118
+ }
119
+ var currentUserDepartmentId = currentUserDepartmentIds[0];
120
+ if (typeof currentUserDepartmentId !== 'number') {
121
+ defaultValueData[column$1.key] = null;
122
+ return;
123
+ }
124
+ defaultValueData[column$1.key] = currentUserDepartmentId;
125
+ }
126
+ } else if (defaultValue || defaultValue === 0) {
127
+ if (columnType === cellType.CellType.TEXT) {
128
+ defaultValueData[column$1.key] = defaultValue.replace(/\{[^\}]+\}/ig, function (specialVariable) {
129
+ var collaborator = collaborators.find(function (item) {
130
+ return item.email === username;
131
+ });
132
+ if (specialVariable.toLocaleLowerCase() === '{creator.name}') {
133
+ if (collaborator) {
134
+ return collaborator.name;
135
+ }
136
+ } else if (specialVariable.toLocaleLowerCase() === '{creator.id}') {
137
+ if (userId) {
138
+ return userId;
139
+ }
140
+ }
141
+ return '';
142
+ });
143
+ } else {
144
+ defaultValueData[column$1.key] = defaultValue;
145
+ }
146
+ }
147
+ });
148
+ return defaultValueData;
149
+ };
19
150
 
151
+ exports.getRowDefaultData = getRowDefaultData;
20
152
  exports.isTableRows = isTableRows;
153
+ exports.updateTableRowsWithRowsData = updateTableRowsWithRowsData;
@@ -186,7 +186,7 @@ var ValidateFilter = /*#__PURE__*/function () {
186
186
  if (CHECK_EMPTY_PREDICATES.includes(predicate)) {
187
187
  return true;
188
188
  }
189
- if (array_type === cellType.CellType.SINGLE_SELECT) {
189
+ if (array_type === cellType.CellType.SINGLE_SELECT || array_type === cellType.CellType.DEPARTMENT_SINGLE_SELECT) {
190
190
  return this.validatePredicate(predicate, {
191
191
  type: cellType.CellType.MULTIPLE_SELECT
192
192
  });
@@ -431,6 +431,9 @@ var ValidateFilter = /*#__PURE__*/function () {
431
431
  data: array_data
432
432
  });
433
433
  }
434
+ if (array_type === cellType.CellType.DEPARTMENT_SINGLE_SELECT) {
435
+ return this.isValidTermType(term, TERM_TYPE_MAP.ARRAY);
436
+ }
434
437
  if (column.COLLABORATOR_COLUMN_TYPES.includes(array_type)) {
435
438
  return this.isValidTerm(term, predicate, modifier, {
436
439
  type: cellType.CellType.COLLABORATOR
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-utils",
3
- "version": "4.4.3",
3
+ "version": "4.4.4-beta.1",
4
4
  "description": "dtable common utils",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",
@@ -9,6 +9,7 @@
9
9
  "test": "jest -c --watchAll",
10
10
  "test-cov": "jest --coverage",
11
11
  "eslint": "eslint ./src/**",
12
+ "eslint-fix": "eslint ./src/** --fix",
12
13
  "build": "rm -rf dist lib es && rollup -c",
13
14
  "prepublishOnly": "npm run build"
14
15
  },