dtable-utils 0.0.3-beta.1 → 0.0.3

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 (152) hide show
  1. package/README.md +2 -30
  2. package/dist/index.js +1 -1
  3. package/es/cell-value-get/cell-value.js +19 -227
  4. package/es/cell-value-get/collaborator.js +3 -9
  5. package/es/cell-value-get/digital-sign.js +1 -1
  6. package/es/cell-value-get/duration.js +1 -1
  7. package/es/cell-value-get/geolocation.js +5 -29
  8. package/es/cell-value-get/long-text.js +1 -1
  9. package/es/cell-value-get/number.js +18 -42
  10. package/es/cell-value-get/option.js +7 -17
  11. package/es/cell-value-set/number.js +1 -53
  12. package/es/column/{core.js → common.js} +14 -2
  13. package/es/column/date.js +1 -1
  14. package/es/column/number.js +1 -1
  15. package/es/common.js +10 -9
  16. package/es/constants/column.js +2 -127
  17. package/es/constants/filter/index.js +1 -5
  18. package/es/date.js +1 -1
  19. package/es/index.js +10 -62
  20. package/es/validate/filter.js +1 -1
  21. package/lib/cell-value-get/cell-value.js +18 -231
  22. package/lib/cell-value-get/collaborator.js +2 -9
  23. package/lib/cell-value-get/digital-sign.js +1 -1
  24. package/lib/cell-value-get/duration.js +1 -0
  25. package/lib/cell-value-get/geolocation.js +5 -30
  26. package/lib/cell-value-get/long-text.js +1 -1
  27. package/lib/cell-value-get/number.js +17 -42
  28. package/lib/cell-value-get/option.js +6 -18
  29. package/lib/cell-value-set/number.js +0 -53
  30. package/lib/column/{core.js → common.js} +14 -1
  31. package/lib/column/date.js +2 -2
  32. package/lib/column/number.js +3 -3
  33. package/lib/common.js +11 -13
  34. package/lib/constants/column.js +1 -134
  35. package/lib/constants/filter/index.js +0 -5
  36. package/lib/index.js +8 -176
  37. package/lib/validate/filter.js +3 -3
  38. package/package.json +3 -5
  39. package/es/cell-value-get/rate.js +0 -6
  40. package/es/cell-value-set/date.js +0 -20
  41. package/es/color/gradient-color.js +0 -100
  42. package/es/column/color.js +0 -415
  43. package/es/column/option.js +0 -115
  44. package/es/constants/color.js +0 -16
  45. package/es/constants/column-permission.js +0 -7
  46. package/es/constants/grid-header.js +0 -6
  47. package/es/constants/group.js +0 -23
  48. package/es/constants/limit.js +0 -3
  49. package/es/constants/reg.js +0 -4
  50. package/es/constants/row-color.js +0 -11
  51. package/es/constants/sort.js +0 -11
  52. package/es/filter/core.js +0 -287
  53. package/es/filter/filter-column/array.js +0 -82
  54. package/es/filter/filter-column/checkbox.js +0 -8
  55. package/es/filter/filter-column/collaborator.js +0 -67
  56. package/es/filter/filter-column/creator.js +0 -50
  57. package/es/filter/filter-column/date.js +0 -59
  58. package/es/filter/filter-column/digital-sign.js +0 -26
  59. package/es/filter/filter-column/file.js +0 -24
  60. package/es/filter/filter-column/formula.js +0 -49
  61. package/es/filter/filter-column/geolocation.js +0 -53
  62. package/es/filter/filter-column/link.js +0 -12
  63. package/es/filter/filter-column/long-text.js +0 -25
  64. package/es/filter/filter-column/multiple-select.js +0 -60
  65. package/es/filter/filter-column/number.js +0 -93
  66. package/es/filter/filter-column/single-select.js +0 -41
  67. package/es/filter/filter-column/text.js +0 -55
  68. package/es/filter/filter-row.js +0 -198
  69. package/es/group/core.js +0 -107
  70. package/es/group/group-row.js +0 -366
  71. package/es/link/core.js +0 -78
  72. package/es/number.js +0 -13
  73. package/es/row/color.js +0 -278
  74. package/es/row/core.js +0 -161
  75. package/es/sort/core.js +0 -32
  76. package/es/sort/sort-column/array.js +0 -63
  77. package/es/sort/sort-column/checkbox.js +0 -15
  78. package/es/sort/sort-column/collaborator.js +0 -9
  79. package/es/sort/sort-column/date.js +0 -25
  80. package/es/sort/sort-column/formula.js +0 -40
  81. package/es/sort/sort-column/link.js +0 -23
  82. package/es/sort/sort-column/multiple-select.js +0 -45
  83. package/es/sort/sort-column/number.js +0 -18
  84. package/es/sort/sort-column/single-select.js +0 -22
  85. package/es/sort/sort-column/text.js +0 -47
  86. package/es/sort/sort-row.js +0 -126
  87. package/es/table/column.js +0 -27
  88. package/es/table/core.js +0 -14
  89. package/es/table/index.js +0 -14
  90. package/es/table/row.js +0 -25
  91. package/es/validate/geolocation.js +0 -5
  92. package/es/view/core.js +0 -135
  93. package/es/view/formula.js +0 -143
  94. package/es/view/group.js +0 -32
  95. package/es/view/summaries.js +0 -179
  96. package/lib/cell-value-get/rate.js +0 -10
  97. package/lib/cell-value-set/date.js +0 -24
  98. package/lib/color/gradient-color.js +0 -110
  99. package/lib/column/color.js +0 -424
  100. package/lib/column/option.js +0 -123
  101. package/lib/constants/color.js +0 -20
  102. package/lib/constants/column-permission.js +0 -11
  103. package/lib/constants/grid-header.js +0 -10
  104. package/lib/constants/group.js +0 -36
  105. package/lib/constants/limit.js +0 -7
  106. package/lib/constants/reg.js +0 -9
  107. package/lib/constants/row-color.js +0 -17
  108. package/lib/constants/sort.js +0 -18
  109. package/lib/filter/core.js +0 -301
  110. package/lib/filter/filter-column/array.js +0 -86
  111. package/lib/filter/filter-column/checkbox.js +0 -12
  112. package/lib/filter/filter-column/collaborator.js +0 -75
  113. package/lib/filter/filter-column/creator.js +0 -54
  114. package/lib/filter/filter-column/date.js +0 -63
  115. package/lib/filter/filter-column/digital-sign.js +0 -30
  116. package/lib/filter/filter-column/file.js +0 -28
  117. package/lib/filter/filter-column/formula.js +0 -53
  118. package/lib/filter/filter-column/geolocation.js +0 -57
  119. package/lib/filter/filter-column/link.js +0 -16
  120. package/lib/filter/filter-column/long-text.js +0 -29
  121. package/lib/filter/filter-column/multiple-select.js +0 -68
  122. package/lib/filter/filter-column/number.js +0 -97
  123. package/lib/filter/filter-column/single-select.js +0 -45
  124. package/lib/filter/filter-column/text.js +0 -59
  125. package/lib/filter/filter-row.js +0 -204
  126. package/lib/group/core.js +0 -117
  127. package/lib/group/group-row.js +0 -377
  128. package/lib/link/core.js +0 -90
  129. package/lib/number.js +0 -18
  130. package/lib/row/color.js +0 -286
  131. package/lib/row/core.js +0 -170
  132. package/lib/sort/core.js +0 -37
  133. package/lib/sort/sort-column/array.js +0 -67
  134. package/lib/sort/sort-column/checkbox.js +0 -19
  135. package/lib/sort/sort-column/collaborator.js +0 -13
  136. package/lib/sort/sort-column/date.js +0 -29
  137. package/lib/sort/sort-column/formula.js +0 -44
  138. package/lib/sort/sort-column/link.js +0 -27
  139. package/lib/sort/sort-column/multiple-select.js +0 -50
  140. package/lib/sort/sort-column/number.js +0 -22
  141. package/lib/sort/sort-column/single-select.js +0 -26
  142. package/lib/sort/sort-column/text.js +0 -52
  143. package/lib/sort/sort-row.js +0 -136
  144. package/lib/table/column.js +0 -32
  145. package/lib/table/core.js +0 -18
  146. package/lib/table/index.js +0 -18
  147. package/lib/table/row.js +0 -30
  148. package/lib/validate/geolocation.js +0 -9
  149. package/lib/view/core.js +0 -144
  150. package/lib/view/formula.js +0 -150
  151. package/lib/view/group.js +0 -36
  152. package/lib/view/summaries.js +0 -185
package/lib/row/color.js DELETED
@@ -1,286 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var column = require('../table/column.js');
7
- var row = require('../table/row.js');
8
- var core$1 = require('./core.js');
9
- var option = require('../column/option.js');
10
- var geolocation = require('../cell-value-get/geolocation.js');
11
- var filter = require('../validate/filter.js');
12
- var core = require('../filter/core.js');
13
- var filterRow = require('../filter/filter-row.js');
14
- var rowColor = require('../constants/row-color.js');
15
- var cellType = require('../constants/cell-type.js');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
-
21
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
- var isValidRowColorRule = function isValidRowColorRule(rule, columns) {
24
- var filters = rule.filters;
25
- if (!filters || filters.length === 0) return false;
26
- return filters.some(function (filter$1) {
27
- return !filter.ValidateFilter.validate(filter$1, columns).error_message;
28
- });
29
- };
30
- var getValidRowColorRules = function getValidRowColorRules(colorRules, columns) {
31
- return colorRules.filter(function (colorRule) {
32
- return isValidRowColorRule(colorRule, columns);
33
- });
34
- };
35
- var getOptionIdMap = function getOptionIdMap(options) {
36
- if (!Array.isArray(options) || options.length === 0) return {};
37
- var optionsMap = {};
38
- options.forEach(function (option) {
39
- optionsMap[option.id] = true;
40
- });
41
- return optionsMap;
42
- };
43
- var getFormattedDuplicateColumns = function getFormattedDuplicateColumns(columns, duplicateColumnKeys, _ref) {
44
- var collaborators = _ref.collaborators;
45
- var formattedColumns = [];
46
- var _loop = function _loop() {
47
- var key = duplicateColumnKeys[i];
48
- var currColumn = columns.find(function (column) {
49
- return column.key === key;
50
- });
51
- if (!currColumn) return "continue";
52
- var type = currColumn.type,
53
- data = currColumn.data;
54
- var formattedColumnData = data;
55
- if (!rowColor.SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES.includes(type)) return "continue";
56
- if (type === cellType.CellType.SINGLE_SELECT || type === cellType.CellType.MULTIPLE_SELECT) {
57
- var options = option.getColumnOptions(currColumn);
58
- formattedColumnData = getOptionIdMap(options);
59
- } else if (type === cellType.CellType.COLLABORATOR) {
60
- var optionsMap = {};
61
- if (Array.isArray(collaborators)) {
62
- collaborators.forEach(function (collaborator) {
63
- optionsMap[collaborator.email] = true;
64
- });
65
- }
66
- formattedColumnData = optionsMap;
67
- }
68
- formattedColumns.push({
69
- key: key,
70
- type: type,
71
- data: formattedColumnData
72
- });
73
- };
74
- for (var i = 0; i < duplicateColumnKeys.length; i++) {
75
- var _ret = _loop();
76
- if (_ret === "continue") continue;
77
- }
78
- return formattedColumns;
79
- };
80
- var getDuplicateRowValue = function getDuplicateRowValue(row, columns, formulaRow) {
81
- if (!row) return '';
82
- var rowValue = columns.map(function (column) {
83
- var type = column.type,
84
- data = column.data,
85
- key = column.key;
86
- var cellValue = row[key];
87
- switch (type) {
88
- case cellType.CellType.SINGLE_SELECT:
89
- {
90
- return data[cellValue] ? cellValue : '';
91
- }
92
- case cellType.CellType.MULTIPLE_SELECT:
93
- case cellType.CellType.COLLABORATOR:
94
- {
95
- if (!Array.isArray(cellValue) || cellValue.length === 0) return '';
96
- return cellValue.filter(function (item) {
97
- return data[item];
98
- }).sort().join('');
99
- }
100
- case cellType.CellType.GEOLOCATION:
101
- {
102
- if (!cellValue) return '';
103
- return geolocation.getGeolocationDisplayString(cellValue, data) || '';
104
- }
105
- case cellType.CellType.NUMBER:
106
- {
107
- if (!cellValue && cellValue !== 0) return '';
108
- return cellValue;
109
- }
110
- case cellType.CellType.FORMULA:
111
- {
112
- if (!formulaRow) return '';
113
- cellValue = formulaRow[key];
114
- return cellValue;
115
- }
116
- default:
117
- {
118
- return cellValue || '';
119
- }
120
- }
121
- }).join('_seatable_join_key_');
122
- if (!rowValue) return '';
123
- if (typeof ''.replaceAll !== 'function') {
124
- // eslint-disable-next-line
125
- String.prototype.replaceAll = function (s1, s2) {
126
- return this.replace(new RegExp(s1, 'gm'), s2);
127
- };
128
- }
129
- if (!rowValue.replaceAll('_seatable_join_key_', '')) return '';
130
- return rowValue;
131
- };
132
- var getRowsColorBySingleSelectColumn = function getRowsColorBySingleSelectColumn(rows, columnKey, table) {
133
- var colors = {};
134
- var column$1 = column.getTableColumnByKey(table, columnKey);
135
- var options = option.getColumnOptions(column$1);
136
- if (!Array.isArray(options) || options.length === 0) return {};
137
- var option_id_color_map = {};
138
- options.forEach(function (option) {
139
- option_id_color_map[option.id] = option.color;
140
- });
141
- rows.forEach(function (row) {
142
- var optionId = row[columnKey];
143
- var color = optionId ? option_id_color_map[optionId] : '';
144
- if (color) {
145
- colors[row._id] = color;
146
- }
147
- });
148
- return colors;
149
- };
150
- var getRowsColorByRules = function getRowsColorByRules(rows, view, table) {
151
- var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
152
- username = _ref2.username,
153
- userId = _ref2.userId;
154
- var formula_rows = view.formula_rows,
155
- colorbys = view.colorbys;
156
- var _ref3 = colorbys || {},
157
- type = _ref3.type,
158
- color_by_rules = _ref3.color_by_rules;
159
- if (type !== rowColor.ROW_COLOR_TYPE.BY_RULES) return {};
160
- var columns = table.columns;
161
- var validColorRules = getValidRowColorRules(color_by_rules, columns);
162
- var colorRulesLen = validColorRules.length;
163
- var colors = {};
164
- if (colorRulesLen === 0) return {};
165
- validColorRules = validColorRules.map(function (colorRule) {
166
- var filters = colorRule.filters;
167
- var validFilters;
168
- try {
169
- validFilters = core.deleteInvalidFilter(filters, columns);
170
- } catch (err) {
171
- validFilters = [];
172
- }
173
- validFilters = core.getFormattedFilters(validFilters);
174
- return _objectSpread(_objectSpread({}, colorRule), {}, {
175
- filters: validFilters
176
- });
177
- });
178
- rows.forEach(function (row) {
179
- var rowId = row._id;
180
- var formulaRow = formula_rows && formula_rows[rowId] || {};
181
- for (var i = 0; i < colorRulesLen; i++) {
182
- var colorRule = validColorRules[i];
183
- var color = colorRule.color,
184
- filter_conjunction = colorRule.filter_conjunction,
185
- filters = colorRule.filters;
186
- if (filterRow.filterRow(row, filter_conjunction, filters, {
187
- formulaRow: formulaRow,
188
- username: username,
189
- userId: userId
190
- })) {
191
- colors[rowId] = color;
192
- break;
193
- }
194
- }
195
- });
196
- return colors;
197
- };
198
- var getRowsColorByDuplicateValues = function getRowsColorByDuplicateValues(rows, view, table, _ref4) {
199
- var collaborators = _ref4.collaborators;
200
- var colorbys = view.colorbys,
201
- formula_rows = view.formula_rows;
202
- var color_by_duplicate_column_keys = colorbys.color_by_duplicate_column_keys;
203
- if (!Array.isArray(color_by_duplicate_column_keys) || color_by_duplicate_column_keys.length === 0) return {};
204
- var columns = table.columns;
205
- var formattedColumns = getFormattedDuplicateColumns(columns, color_by_duplicate_column_keys, {
206
- collaborators: collaborators
207
- });
208
- if (formattedColumns.length === 0) return {};
209
- var colors = {};
210
- var duplicate_rows_ids_map = {}; // row value: [ row_id ]
211
- for (var i = 0; i < rows.length; i++) {
212
- var row = rows[i];
213
- var rowId = row._id;
214
- var formulaRow = formula_rows && formula_rows[rowId];
215
- var rowValue = getDuplicateRowValue(row, formattedColumns, formulaRow);
216
- if (!rowValue) continue;
217
- var validRowIds = duplicate_rows_ids_map[rowValue];
218
- if (validRowIds && validRowIds.length > 0) {
219
- colors[rowId] = rowColor.ROW_COLOR_FOR_DUPLICATE_VALUES;
220
- validRowIds.push(rowId);
221
- var firstDuplicateRowId = validRowIds[0];
222
- if (!colors[firstDuplicateRowId]) {
223
- colors[firstDuplicateRowId] = rowColor.ROW_COLOR_FOR_DUPLICATE_VALUES;
224
- }
225
- } else {
226
- duplicate_rows_ids_map[rowValue] = [rowId];
227
- }
228
- }
229
- return {
230
- colors: colors,
231
- duplicate_rows_ids_map: duplicate_rows_ids_map
232
- };
233
- };
234
- var getRowsColor = function getRowsColor(rows, view, table, value) {
235
- var _ref5 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
236
- username = _ref5.username,
237
- userId = _ref5.userId;
238
- var colorbys = view.colorbys;
239
- if (!colorbys) return {};
240
- var tableRows = core$1.isTableRows(rows) ? rows : row.getRowsByIds(table, rows);
241
- if (tableRows.length === 0) return {};
242
- var type = colorbys.type,
243
- color_by_column = colorbys.color_by_column;
244
- switch (type) {
245
- case rowColor.ROW_COLOR_TYPE.BY_COLUMN:
246
- {
247
- return {
248
- colors: getRowsColorBySingleSelectColumn(tableRows, color_by_column, table)
249
- };
250
- }
251
- case rowColor.ROW_COLOR_TYPE.BY_RULES:
252
- {
253
- return {
254
- colors: getRowsColorByRules(tableRows, view, table, {
255
- username: username,
256
- userId: userId
257
- })
258
- };
259
- }
260
- case rowColor.ROW_COLOR_TYPE.BY_DUPLICATE_VALUES:
261
- {
262
- var _ref6 = value || {},
263
- _ref6$collaborators = _ref6.collaborators,
264
- collaborators = _ref6$collaborators === void 0 ? [] : _ref6$collaborators;
265
- return getRowsColorByDuplicateValues(tableRows, view, table, {
266
- collaborators: collaborators
267
- });
268
- }
269
- default:
270
- {
271
- return {};
272
- }
273
- }
274
- };
275
- var RowColorUtils = {
276
- isValidRowColorRule: isValidRowColorRule,
277
- getValidRowColorRules: getValidRowColorRules,
278
- getRowsColor: getRowsColor,
279
- getFormattedDuplicateColumns: getFormattedDuplicateColumns,
280
- getDuplicateRowValue: getDuplicateRowValue,
281
- getRowsColorBySingleSelectColumn: getRowsColorBySingleSelectColumn,
282
- getRowsColorByRules: getRowsColorByRules,
283
- getRowsColorByDuplicateValues: getRowsColorByDuplicateValues
284
- };
285
-
286
- exports["default"] = RowColorUtils;
package/lib/row/core.js DELETED
@@ -1,170 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _typeof = require('@babel/runtime/helpers/typeof');
6
- var cellValue = require('../cell-value-get/cell-value.js');
7
- require('dayjs');
8
- require('../constants/column.js');
9
- var option = require('../cell-value-get/option.js');
10
- require('../constants/group.js');
11
- var core = require('../link/core.js');
12
- var common = require('../common.js');
13
- var cellType = require('../constants/cell-type.js');
14
- var limit = require('../constants/limit.js');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
19
-
20
- var isTableRows = function isTableRows(rows) {
21
- return Array.isArray(rows) && _typeof__default["default"](rows[0]) === 'object';
22
- };
23
- var convertRow = function convertRow(row, value, table, view, formulaResults, convertLinkID) {
24
- var _ref = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {},
25
- debug = _ref.debug;
26
- var result = {};
27
- // eslint-disable-next-line
28
- if (row.hasOwnProperty('_id')) {
29
- result._id = row._id;
30
- }
31
- // eslint-disable-next-line
32
- if (row.hasOwnProperty('_mtime')) {
33
- result._mtime = row._mtime;
34
- }
35
- // eslint-disable-next-line
36
- if (row.hasOwnProperty('_ctime')) {
37
- result._ctime = row._ctime;
38
- }
39
- var columns = table.columns;
40
- if (columns.length > limit.CONVERT_ROW_COLUMNS_LIMIT) {
41
- columns = columns.slice(0, limit.CONVERT_ROW_COLUMNS_LIMIT);
42
- }
43
- var hiddenColumns = view ? view.hidden_columns : null;
44
- for (var i = 0; i < columns.length; i++) {
45
- var column = columns[i];
46
- var key = column.key,
47
- type = column.type,
48
- columnName = column.name;
49
- if (hiddenColumns && hiddenColumns.includes(key)) {
50
- continue;
51
- }
52
- var cellValue$1 = row[key];
53
- switch (type) {
54
- case cellType.CellType.SINGLE_SELECT:
55
- {
56
- if (!column.data) {
57
- if (debug) {
58
- debug('No options found');
59
- }
60
- break;
61
- }
62
- result[columnName] = option.getColumnOptionNameById(column, cellValue$1);
63
- break;
64
- }
65
- case cellType.CellType.MULTIPLE_SELECT:
66
- {
67
- if (!column.data) {
68
- if (debug) {
69
- debug('No options found');
70
- }
71
- break;
72
- }
73
- if (!Array.isArray(cellValue$1)) {
74
- result[columnName] = '';
75
- break;
76
- }
77
- var optionNames = [];
78
- for (var optionIndex = 0; optionIndex < cellValue$1.length; optionIndex++) {
79
- var optionName = option.getColumnOptionNameById(column, cellValue$1[optionIndex]);
80
- if (optionName) {
81
- optionNames.push(optionName);
82
- }
83
- }
84
- result[columnName] = optionNames;
85
- break;
86
- }
87
- case cellType.CellType.LONG_TEXT:
88
- {
89
- result[columnName] = cellValue$1 ? cellValue$1.text : '';
90
- break;
91
- }
92
- case cellType.CellType.LINK:
93
- {
94
- if (!column.data) {
95
- if (debug) {
96
- debug('No links found');
97
- }
98
- break;
99
- }
100
- // convertLinkID to display value
101
- if (convertLinkID) {
102
- // get values form formulaResults
103
- var formulaRow = formulaResults && formulaResults[row._id];
104
- var cellResult = formulaRow && formulaRow[key];
105
- if (!cellResult || !Array.isArray(cellResult) || cellResult.length === 0) {
106
- result[columnName] = null;
107
- break;
108
- }
109
- // linked with common column:
110
- // cellResult
111
- // [
112
- // {row_id: '', displayValue: ''},
113
- // {row_id: '', displayValue: ''},
114
- // ]
115
-
116
- // linked with formula column and formula result is array
117
- // cellResult
118
- // [
119
- // {row_id: '', display_value: []},
120
- // {row_id: '', display_value: []},
121
- // ]
122
- result[columnName] = cellResult;
123
- break;
124
- }
125
- var tableID = table._id;
126
- var _column$data = column.data,
127
- link_id = _column$data.link_id,
128
- table_id = _column$data.table_id,
129
- other_table_id = _column$data.other_table_id;
130
- var otherTableID = tableID === table_id ? other_table_id : table_id;
131
- var links = value.links;
132
- result[columnName] = core.getLinkCellValue(links, link_id, tableID, otherTableID, row._id);
133
- break;
134
- }
135
- case cellType.CellType.FORMULA:
136
- case cellType.CellType.LINK_FORMULA:
137
- {
138
- if (!column.data || !formulaResults) {
139
- if (debug) {
140
- debug('No formula found');
141
- }
142
- break;
143
- }
144
- var _formulaRow = formulaResults[row._id] || {};
145
- result[columnName] = cellValue.getFormulaDisplayString(_formulaRow[key], column.data);
146
- break;
147
- }
148
- default:
149
- {
150
- // text/email/url/auto-number/
151
- // check/
152
- // rate/duration/
153
- // file/image/button/
154
- // translate in dtable-events
155
- // number/
156
- // date/ctime/mtime/
157
- // geolocation/
158
- // collaborator/creator/last-modifier/
159
- result[columnName] = cellValue$1;
160
- }
161
- }
162
- if (common.isEmpty(result[columnName])) {
163
- delete result[columnName];
164
- }
165
- }
166
- return result;
167
- };
168
-
169
- exports.convertRow = convertRow;
170
- exports.isTableRows = isTableRows;
package/lib/sort/core.js DELETED
@@ -1,37 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var sort = require('../constants/sort.js');
6
-
7
- /**
8
- * check is valid sort
9
- * @param {object} sort e.g. { column_key: '', sort_type: '' }
10
- * @param {array} columns
11
- * @returns boolean
12
- */
13
- var isValidSort = function isValidSort(sort$1, columns) {
14
- var sortByColumn = sort$1 && columns.find(function (column) {
15
- return column.key === sort$1.column_key;
16
- });
17
- if (!sortByColumn) return false;
18
- return sort.SORT_COLUMN_OPTIONS.includes(sortByColumn.type);
19
- };
20
-
21
- /**
22
- * get valid sorts
23
- * 1. sort column is exist or not
24
- * 2. valid sort type
25
- * @param {array} sorts
26
- * @param {array} columns
27
- * @returns array
28
- */
29
- var getValidSorts = function getValidSorts(sorts, columns) {
30
- if (!Array.isArray(sorts) || !Array.isArray(columns)) return [];
31
- return sorts.filter(function (sort) {
32
- return isValidSort(sort, columns);
33
- });
34
- };
35
-
36
- exports.getValidSorts = getValidSorts;
37
- exports.isValidSort = isValidSort;
@@ -1,67 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var collaborator = require('../../cell-value-get/collaborator.js');
6
- var cellValue = require('../../cell-value-get/cell-value.js');
7
- var checkbox = require('./checkbox.js');
8
- var collaborator$1 = require('./collaborator.js');
9
- var date = require('./date.js');
10
- var number = require('./number.js');
11
- var text = require('./text.js');
12
- var cellType = require('../../constants/cell-type.js');
13
- var column = require('../../constants/column.js');
14
- var formula = require('../../constants/formula.js');
15
-
16
- var sortByArrayType = function sortByArrayType(currCellVal, nextCellVal, sortType, _ref) {
17
- var columnData = _ref.columnData,
18
- value = _ref.value;
19
- var _ref2 = columnData || {},
20
- array_type = _ref2.array_type;
21
- if (column.NUMERIC_COLUMNS_TYPES.includes(array_type)) {
22
- var currNumber = currCellVal;
23
- var nextNumber = nextCellVal;
24
- if (Array.isArray(currCellVal)) {
25
- currNumber = currCellVal[0];
26
- }
27
- if (Array.isArray(nextCellVal)) {
28
- nextNumber = nextCellVal[0];
29
- }
30
- currNumber = currNumber || currNumber === 0 ? currNumber : null;
31
- nextNumber = nextNumber || nextNumber === 0 ? nextNumber : null;
32
- return number.sortNumber(currNumber, nextNumber, sortType);
33
- }
34
- if (column.DATE_COLUMN_OPTIONS.includes(array_type)) {
35
- var currDate = Array.isArray(currCellVal) ? currCellVal[0] : currCellVal;
36
- var nextDate = Array.isArray(nextCellVal) ? nextCellVal[0] : nextCellVal;
37
- return date.sortDate(currDate, nextDate, sortType);
38
- }
39
- if (array_type === cellType.CellType.CHECKBOX || array_type === formula.FORMULA_RESULT_TYPE.BOOL) {
40
- var currBoolean = currCellVal;
41
- var nextBoolean = nextCellVal;
42
- if (Array.isArray(currCellVal)) {
43
- currBoolean = currCellVal[0];
44
- }
45
- if (Array.isArray(nextCellVal)) {
46
- nextBoolean = nextCellVal[0];
47
- }
48
- currBoolean = currBoolean || false;
49
- nextBoolean = nextBoolean || false;
50
- return checkbox.sortCheckbox(currBoolean, nextBoolean, sortType);
51
- }
52
- if (array_type === cellType.CellType.COLLABORATOR) {
53
- var collaborators = value.collaborators;
54
- var currCollaborators = Array.isArray(currCellVal) ? currCellVal : [currCellVal];
55
- var nextCollaborators = Array.isArray(nextCellVal) ? nextCellVal : [nextCellVal];
56
- if (collaborators) {
57
- currCollaborators = collaborator.getCollaboratorsNames(currCollaborators, collaborators);
58
- nextCollaborators = collaborator.getCollaboratorsNames(nextCollaborators, collaborators);
59
- }
60
- return collaborator$1.sortCollaborator(currCollaborators, nextCollaborators, sortType);
61
- }
62
- var currText = cellValue.getFormulaDisplayString(currCellVal, columnData);
63
- var nextText = cellValue.getFormulaDisplayString(nextCellVal, columnData);
64
- return text.sortText(currText, nextText, sortType);
65
- };
66
-
67
- exports.sortByArrayType = sortByArrayType;
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var sort = require('../../constants/sort.js');
6
-
7
- var sortCheckbox = function sortCheckbox(currCellVal, nextCellVal, sortType) {
8
- var currCellValPart = currCellVal ? 1 : -1;
9
- var nextCellValPart = nextCellVal ? 1 : -1;
10
- if (currCellValPart > nextCellValPart) {
11
- return sortType === sort.SORT_TYPE.UP ? 1 : -1;
12
- }
13
- if (currCellValPart < nextCellValPart) {
14
- return sortType === sort.SORT_TYPE.UP ? -1 : 1;
15
- }
16
- return 0;
17
- };
18
-
19
- exports.sortCheckbox = sortCheckbox;
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var text = require('./text.js');
6
-
7
- var sortCollaborator = function sortCollaborator(currCellVal, nextCellVal, sortType) {
8
- var currCellValString = Array.isArray(currCellVal) && currCellVal.length ? currCellVal.join('') : null;
9
- var nextCellValString = Array.isArray(currCellVal) && currCellVal.length ? nextCellVal.join('') : null;
10
- return text.sortText(currCellValString, nextCellValString, sortType);
11
- };
12
-
13
- exports.sortCollaborator = sortCollaborator;
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var sort = require('../../constants/sort.js');
6
-
7
- /**
8
- * compare date
9
- * @param {string} currDate date string, e.g. '2023-07-31'
10
- * @param {string} nextDate date string
11
- * @param {string} sortType e.g. 'up' | 'down'
12
- * @returns number, e.g. 1 | -1 | 0
13
- */
14
- var sortDate = function sortDate(currDate, nextDate, sortType) {
15
- var emptyCurrDate = !currDate;
16
- var emptyNextDate = !nextDate;
17
- if (emptyCurrDate && emptyNextDate) return 0;
18
- if (emptyCurrDate) return 1;
19
- if (emptyNextDate) return -1;
20
- if (currDate > nextDate) {
21
- return sortType === sort.SORT_TYPE.UP ? 1 : -1;
22
- }
23
- if (currDate < nextDate) {
24
- return sortType === sort.SORT_TYPE.UP ? -1 : 1;
25
- }
26
- return 0;
27
- };
28
-
29
- exports.sortDate = sortDate;
@@ -1,44 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cellValue = require('../../cell-value-get/cell-value.js');
6
- var array = require('./array.js');
7
- var checkbox = require('./checkbox.js');
8
- var date = require('./date.js');
9
- var number = require('./number.js');
10
- var text = require('./text.js');
11
- var column = require('../../constants/column.js');
12
- var formula = require('../../constants/formula.js');
13
- var sort = require('../../constants/sort.js');
14
-
15
- var sortFormula = function sortFormula(currCellVal, nextCellVal, sortType, _ref) {
16
- var columnData = _ref.columnData,
17
- value = _ref.value;
18
- var _ref2 = columnData || {},
19
- result_type = _ref2.result_type;
20
- if (sort.NUMBER_SORTER_COLUMN_TYPES.includes(result_type)) {
21
- var currNumber = currCellVal || currCellVal === 0 ? currCellVal - 0 : null;
22
- var nextNumber = nextCellVal || nextCellVal === 0 ? nextCellVal - 0 : null;
23
- return number.sortNumber(currNumber, nextNumber, sortType);
24
- }
25
- if (column.DATE_COLUMN_OPTIONS.includes(result_type)) {
26
- return date.sortDate(currCellVal, nextCellVal, sortType);
27
- }
28
- if (result_type === formula.FORMULA_RESULT_TYPE.BOOL) {
29
- var currBoolean = currCellVal || false;
30
- var nextBoolean = nextCellVal || false;
31
- return checkbox.sortCheckbox(currBoolean, nextBoolean);
32
- }
33
- if (result_type === formula.FORMULA_RESULT_TYPE.ARRAY) {
34
- return array.sortByArrayType(currCellVal, nextCellVal, sortType, {
35
- columnData: columnData,
36
- value: value
37
- });
38
- }
39
- var currText = cellValue.getFormulaDisplayString(currCellVal, columnData);
40
- var nextText = cellValue.getFormulaDisplayString(nextCellVal, columnData);
41
- return text.sortText(currText, nextText, sortType);
42
- };
43
-
44
- exports.sortFormula = sortFormula;