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.
- package/dist/index.js +1 -1
- package/es/archive/clause-module/search.js +1 -1
- package/es/archive/sql-generator/filter-condition.js +52 -5
- package/es/cell-value-set/duration.js +3 -1
- package/es/cell-value-set/geolocation.js +4 -4
- package/es/cell-value-set/image.js +3 -3
- package/es/cell-value-set/multiple-select.js +6 -6
- package/es/cell-value-set/single-select.js +2 -2
- package/es/filter/core.js +18 -4
- package/es/filter/filter-column/array.js +14 -5
- package/es/filter/filter-column/department-multiple-select.js +117 -0
- package/es/filter/filter-column/department-single-select.js +1 -15
- package/es/filter/filter-column/formula.js +4 -2
- package/es/filter/filter-column/link.js +4 -2
- package/es/filter/filter-row.js +7 -3
- package/es/index.js +2 -1
- package/es/row/core.js +132 -1
- package/es/validate/filter.js +4 -1
- package/lib/archive/clause-module/search.js +1 -1
- package/lib/archive/sql-generator/filter-condition.js +52 -5
- package/lib/cell-value-set/duration.js +3 -1
- package/lib/cell-value-set/geolocation.js +4 -4
- package/lib/cell-value-set/image.js +3 -3
- package/lib/cell-value-set/multiple-select.js +6 -6
- package/lib/cell-value-set/single-select.js +2 -2
- package/lib/filter/core.js +20 -3
- package/lib/filter/filter-column/array.js +14 -5
- package/lib/filter/filter-column/department-multiple-select.js +125 -0
- package/lib/filter/filter-column/department-single-select.js +11 -25
- package/lib/filter/filter-column/formula.js +4 -2
- package/lib/filter/filter-column/link.js +4 -2
- package/lib/filter/filter-row.js +7 -3
- package/lib/index.js +3 -0
- package/lib/row/core.js +133 -0
- package/lib/validate/filter.js +4 -1
- 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;
|
package/lib/validate/filter.js
CHANGED
|
@@ -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
|
+
"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
|
},
|