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
@@ -1,424 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var deepCopy = require('deep-copy');
7
- var core = require('../filter/core.js');
8
- var filterRow = require('../filter/filter-row.js');
9
- var filter = require('../validate/filter.js');
10
- var number = require('./number.js');
11
- var row = require('../table/row.js');
12
- var sortRow = require('../sort/sort-row.js');
13
- var core$1 = require('../row/core.js');
14
- var color = require('../row/color.js');
15
- var gradientColor = require('../color/gradient-color.js');
16
- var cellType = require('../constants/cell-type.js');
17
- require('../constants/column.js');
18
- var index = require('../constants/filter/index.js');
19
- require('../constants/formula.js');
20
- require('../constants/sort.js');
21
- require('../constants/group.js');
22
-
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
26
- var deepCopy__default = /*#__PURE__*/_interopDefaultLegacy(deepCopy);
27
-
28
- 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; }
29
- 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; }
30
- var COMPUTED_COLUMN_TYPES = [cellType.CellType.LINK, cellType.CellType.FORMULA, cellType.CellType.LINK_FORMULA];
31
- var BY_RULES = 'by_rules';
32
- var BY_NUMERIC_RANGE = 'by_numeric_range';
33
- var BY_REPEAT_VALUE = 'by_repeat_value';
34
- var isColumnHasColorRules = function isColumnHasColorRules(column) {
35
- var colorbys = column && column.colorbys;
36
- if (!colorbys) return false;
37
- var type = colorbys.type,
38
- colorByRules = colorbys.color_by_rules,
39
- rangeSettings = colorbys.range_settings,
40
- repeatValueSettings = colorbys.repeat_value_settings;
41
- if (type === BY_RULES) {
42
- return colorByRules && Array.isArray(colorByRules) && colorByRules.length > 0;
43
- }
44
- if (type === BY_REPEAT_VALUE) {
45
- return repeatValueSettings;
46
- }
47
-
48
- // type === BY_NUMERIC_RANGE
49
- return rangeSettings && Object.keys(rangeSettings).length > 0;
50
- };
51
- var hasRelatedColumnColorRule = function hasRelatedColumnColorRule(columns, updatedColumnKeyMap) {
52
- return (
53
- // the updated column is one of current table, and the column has color_rules
54
- columns.some(function (column) {
55
- return updatedColumnKeyMap[column.key] && isColumnHasColorRules(column);
56
- })
57
- );
58
- };
59
- var isColumnColorRulesValid = function isColumnColorRulesValid(column) {
60
- var columns = [column];
61
- var colorbys = column.colorbys;
62
- var type = colorbys.type,
63
- colorByRules = colorbys.color_by_rules;
64
- if (type === BY_RULES) {
65
- var isHasValidColorRule = colorByRules.some(function (rule) {
66
- var filters = rule.filters;
67
- if (filters.length === 0) return false;
68
- return filters.some(function (filter$1) {
69
- return !filter.ValidateFilter.validate(filter$1, columns).error_message;
70
- });
71
- });
72
- return isHasValidColorRule;
73
- }
74
- if (type === BY_REPEAT_VALUE) {
75
- return true;
76
- }
77
- if (type === BY_NUMERIC_RANGE) {
78
- // gradient color is only used for number column
79
- return number.isNumberColumn(column);
80
- }
81
- return false;
82
- };
83
- var isColumnColorsView = function isColumnColorsView(columns) {
84
- return columns.some(function (column) {
85
- if (!isColumnHasColorRules(column)) return false;
86
-
87
- // valid color rule: the column maybe changed type
88
- if (!isColumnColorRulesValid(column)) return false;
89
- return true;
90
- });
91
- };
92
- var getValidRulesColumns = function getValidRulesColumns(columns) {
93
- // judgement current table's columns has own color_rules columns or not
94
- var ownRulesColumns = columns.filter(function (column) {
95
- return isColumnHasColorRules(column);
96
- });
97
- if (ownRulesColumns.length === 0) return [];
98
-
99
- // judgement current table's columns has valid color_rules columns ro not
100
- var validRulesColumns = ownRulesColumns.filter(function (column) {
101
- return isColumnColorRulesValid(column);
102
- });
103
- if (validRulesColumns.length === 0) return [];
104
- return validRulesColumns;
105
- };
106
- var getSortedViewRows = function getSortedViewRows(column, view, table, value, _ref) {
107
- var username = _ref.username,
108
- userId = _ref.userId;
109
- var filter = {
110
- column_key: column.key,
111
- filter_predicate: 'is_not_empty',
112
- filter_term: '',
113
- column: column
114
- };
115
- var formulaRows = view.formula_rows;
116
- var filterRowIds = filterRow.filterRows(index.FILTER_CONJUNCTION_TYPE.AND, [filter], table.rows, {
117
- formulaRows: formulaRows,
118
- username: username,
119
- userId: userId
120
- });
121
- var sort = {
122
- sort_type: 'up',
123
- column_key: column.key
124
- };
125
- var rows = row.getRowsByIds(table, filterRowIds);
126
- var sortedRowIds = sortRow.sortTableRows([sort], rows, [column], {
127
- formulaRows: formulaRows,
128
- value: value
129
- });
130
- return row.getRowsByIds(table, sortedRowIds);
131
- };
132
- var getCellValue = function getCellValue(row, column, formulaRows) {
133
- var key = column.key,
134
- type = column.type;
135
- var cellValue = row[key];
136
- if (COMPUTED_COLUMN_TYPES.includes(type)) {
137
- var formulaRow = formulaRows && formulaRows[row._id] || {};
138
- if (cellType.CellType.LINK === type) {
139
- var startCellValues = formulaRow[key] && Array.isArray(formulaRow[key]) ? formulaRow[key] : [];
140
- var _ref2 = startCellValues.length > 0 ? startCellValues[0] : {},
141
- _ref2$display_value = _ref2.display_value,
142
- display_value = _ref2$display_value === void 0 ? null : _ref2$display_value;
143
- cellValue = display_value;
144
- } else {
145
- var cellValues = formulaRow[key];
146
- cellValue = Array.isArray(cellValues) ? cellValues[0] : cellValues;
147
- }
148
- }
149
- return cellValue;
150
- };
151
- var getFormattedColumn = function getFormattedColumn(column, view, table, value, rows, _ref3) {
152
- var username = _ref3.username,
153
- userId = _ref3.userId;
154
- var dupColumn = deepCopy__default["default"](column);
155
- var colorbys = dupColumn.colorbys;
156
- var type = colorbys.type,
157
- colorByRules = colorbys.color_by_rules,
158
- rangeSettings = colorbys.range_settings,
159
- repeatValueSettings = colorbys.repeat_value_settings,
160
- duplicateColumnKey = colorbys.duplicate_column_key;
161
- if (type === BY_RULES) {
162
- // formatted color rules
163
- var formattedColorRules = colorByRules.map(function (colorRule) {
164
- var filters = colorRule.filters;
165
- var validFilters = [];
166
- try {
167
- validFilters = core.deleteInvalidFilter(filters, [column]);
168
- } catch (err) {
169
- validFilters = [];
170
- }
171
- validFilters = core.getFormattedFilters(validFilters);
172
-
173
- // return formatted colorRule
174
- return _objectSpread(_objectSpread({}, colorRule), {}, {
175
- filters: validFilters
176
- });
177
- });
178
- dupColumn.colorbys = _objectSpread(_objectSpread({}, colorbys), {}, {
179
- color_by_rules: formattedColorRules
180
- });
181
- return dupColumn;
182
- }
183
- if (type === BY_REPEAT_VALUE) {
184
- var _ref4 = value || {},
185
- _ref4$collaborators = _ref4.collaborators,
186
- collaborators = _ref4$collaborators === void 0 ? [] : _ref4$collaborators;
187
- var formattedColumn = color["default"].getFormattedDuplicateColumns([dupColumn], [duplicateColumnKey], {
188
- collaborators: collaborators
189
- });
190
- var duplicate_rows_ids_map = {};
191
- var formulaRows = view.formula_rows;
192
- for (var i = 0; i < rows.length; i++) {
193
- var row = rows[i];
194
- var rowId = row._id;
195
- var formulaRow = formulaRows && formulaRows[rowId];
196
- var rowValue = color["default"].getDuplicateRowValue(row, formattedColumn, formulaRow);
197
- if (!rowValue) continue;
198
- var rowIds = duplicate_rows_ids_map[rowValue];
199
- if (rowIds && rowIds.length > 0) {
200
- rowIds.push(rowId);
201
- } else {
202
- duplicate_rows_ids_map[rowValue] = [rowId];
203
- }
204
- }
205
- dupColumn.duplicate_rows_ids_map = duplicate_rows_ids_map;
206
- dupColumn.colorbys = _objectSpread(_objectSpread({}, colorbys), {}, {
207
- repeat_value_settings: repeatValueSettings
208
- });
209
- return dupColumn;
210
- }
211
- // type === BY_NUMERIC_RANGE
212
- // column type has been changed
213
- if (!number.isNumberColumn(column)) {
214
- dupColumn.gradientColorUtils = null;
215
- dupColumn.colorbys = _objectSpread(_objectSpread({}, colorbys), {}, {
216
- range_settings: {}
217
- });
218
- return dupColumn;
219
- }
220
-
221
- // add gradient_colors computed properties for dumColumn
222
- var colorType = rangeSettings.color_type,
223
- isCustomStartValue = rangeSettings.is_custom_start_value,
224
- isCustomEndValue = rangeSettings.is_custom_end_value,
225
- startValue = rangeSettings.start_value,
226
- endValue = rangeSettings.end_value;
227
- var min = startValue;
228
- var max = endValue;
229
- if ((!isCustomStartValue || !isCustomEndValue) && table.rows.length > 0) {
230
- // sort rows
231
- var sortedRows = getSortedViewRows(column, view, table, value, {
232
- username: username,
233
- userId: userId
234
- });
235
- var _formulaRows = view.formula_rows;
236
- // number rows length need great than zero
237
- if (sortedRows.length > 0) {
238
- var startRow = sortedRows[0];
239
- var endRow = sortedRows[sortedRows.length - 1];
240
- var startCellValue = getCellValue(startRow, column, _formulaRows);
241
- var endCellValue = getCellValue(endRow, column, _formulaRows);
242
- min = isCustomStartValue ? startValue : startCellValue;
243
- max = isCustomEndValue ? endValue : endCellValue;
244
- }
245
- }
246
- var gradientColorUtils = new gradientColor["default"]({
247
- colorType: colorType,
248
- min: min,
249
- max: max
250
- });
251
- dupColumn.gradientColorUtils = gradientColorUtils;
252
- return dupColumn;
253
- };
254
- var getColumnColors = function getColumnColors(rows, view, table, value) {
255
- var _ref5 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
256
- _ref5$username = _ref5.username,
257
- username = _ref5$username === void 0 ? '' : _ref5$username,
258
- _ref5$userId = _ref5.userId,
259
- userId = _ref5$userId === void 0 ? '' : _ref5$userId;
260
- var columns = table.columns;
261
- var validRulesColumns = getValidRulesColumns(columns);
262
- if (validRulesColumns.length === 0) return {};
263
-
264
- // formatted column's color_rules
265
- validRulesColumns = validRulesColumns.map(function (column) {
266
- return getFormattedColumn(column, view, table, value, rows, {
267
- username: username,
268
- userId: userId
269
- });
270
- });
271
-
272
- /**
273
- * column_colors data struct
274
- * {
275
- * row_id: {[column_key]: value, [column_key]: value},
276
- * row_id: {[column_key]: value, [column_key]: value},
277
- * }
278
- */
279
- var column_colors = {};
280
- var formulaRows = view.formula_rows;
281
- var tableRows = core$1.isTableRows(rows) ? rows : row.getRowsByIds(table, rows);
282
- var rowsLength = tableRows.length;
283
-
284
- // forEach rows
285
- var _loop = function _loop() {
286
- var row = tableRows[i];
287
-
288
- // forEach own color_rules columns
289
- var column_color = {};
290
- var rowId = row._id;
291
- var formulaRow = formulaRows && formulaRows[rowId] || {};
292
- for (var j = 0; j < validRulesColumns.length; j++) {
293
- var column = validRulesColumns[j];
294
- var columnKey = column.key,
295
- colorbys = column.colorbys,
296
- _column$duplicate_row = column.duplicate_rows_ids_map,
297
- duplicate_rows_ids_map = _column$duplicate_row === void 0 ? {} : _column$duplicate_row;
298
- var type = colorbys.type,
299
- colorByRules = colorbys.color_by_rules,
300
- rangeSettings = colorbys.range_settings,
301
- repeatValueSettings = colorbys.repeat_value_settings,
302
- duplicateColumnKey = colorbys.duplicate_column_key;
303
- if (type === BY_RULES) {
304
- // obtain the row data that meets the rules and record the color
305
- for (var m = 0; m < colorByRules.length; m++) {
306
- var colorRule = colorByRules[m];
307
- var filter_conjunction = colorRule.filter_conjunction,
308
- filters = colorRule.filters,
309
- color$1 = colorRule.color;
310
- if (filterRow.filterRow(row, filter_conjunction, filters, {
311
- formulaRow: formulaRow,
312
- username: username,
313
- userId: userId
314
- })) {
315
- column_color[columnKey] = color$1;
316
- break;
317
- }
318
- }
319
- }
320
- if (type === BY_REPEAT_VALUE) {
321
- var _color = repeatValueSettings.color;
322
- var _ref6 = value || {},
323
- _ref6$collaborators = _ref6.collaborators,
324
- collaborators = _ref6$collaborators === void 0 ? [] : _ref6$collaborators;
325
- var formattedColumn = color["default"].getFormattedDuplicateColumns([column], [duplicateColumnKey], {
326
- collaborators: collaborators
327
- });
328
- var rowValue = color["default"].getDuplicateRowValue(row, formattedColumn, formulaRow);
329
- if (!rowValue) continue;
330
- var rowIds = duplicate_rows_ids_map[rowValue];
331
- if (rowIds && rowIds.length > 1) {
332
- var hasRowId = rowIds.some(function (id) {
333
- return id === rowId;
334
- });
335
- if (hasRowId) {
336
- column_color[columnKey] = _color;
337
- var firstDuplicateRowId = rowIds[0];
338
- if (!column_colors[firstDuplicateRowId]) {
339
- column_colors[firstDuplicateRowId] = column_color;
340
- }
341
- }
342
- }
343
- }
344
- if (type === BY_NUMERIC_RANGE) {
345
- if (Object.keys(rangeSettings).length === 0) break;
346
- var cellValue = getCellValue(row, column, formulaRows);
347
- if (cellValue || cellValue === 0) {
348
- var gradientColorUtils = column.gradientColorUtils;
349
- var cellColor = gradientColorUtils.getCellColor(cellValue);
350
- if (cellColor) {
351
- column_color[columnKey] = cellColor;
352
- }
353
- }
354
- }
355
- }
356
- if (Object.keys(column_color).length > 0) {
357
- column_colors[rowId] = column_color;
358
- }
359
- };
360
- for (var i = 0; i < rowsLength; i++) {
361
- _loop();
362
- }
363
- return column_colors;
364
- };
365
- var updateColumnColorsByUpdateRows = function updateColumnColorsByUpdateRows(rows, view, table, value) {
366
- var _ref7 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
367
- _ref7$username = _ref7.username,
368
- username = _ref7$username === void 0 ? '' : _ref7$username,
369
- _ref7$userId = _ref7.userId,
370
- userId = _ref7$userId === void 0 ? '' : _ref7$userId;
371
- var columns = table.columns;
372
- var validRulesColumns = getValidRulesColumns(columns);
373
- if (validRulesColumns.length === 0) return {};
374
- var hasByGradientColorRule = validRulesColumns.some(function (column) {
375
- var colorbys = column.colorbys;
376
- return colorbys.type === BY_NUMERIC_RANGE;
377
- });
378
- var hasRepeatValueColorRule = validRulesColumns.some(function (column) {
379
- var colorbys = column.colorbys;
380
- return colorbys.type === BY_REPEAT_VALUE;
381
- });
382
-
383
- // if columns has one column which colorbys type is by_gradient_color,
384
- // recalculate all the rows background color
385
- if (hasByGradientColorRule || hasRepeatValueColorRule) {
386
- view.column_colors = getColumnColors(table.rows, view, table, value, {
387
- username: username,
388
- userId: userId
389
- });
390
- return view.column_colors;
391
- }
392
-
393
- // recalculate the updated rows background color
394
- var updatedRows = core$1.isTableRows(rows) ? rows : row.getRowsByIds(table, rows);
395
- var columnColors = getColumnColors(updatedRows, view, table, value, {
396
- username: username,
397
- userId: userId
398
- });
399
- var column_colors = view.column_colors;
400
- if (!column_colors) {
401
- column_colors = {};
402
- view.column_colors = column_colors;
403
- }
404
- updatedRows.forEach(function (row) {
405
- var rowId = row._id;
406
- var columnColor = columnColors[rowId];
407
- column_colors[rowId] = columnColor;
408
- });
409
- return view.column_colors;
410
- };
411
- var ColumnColorUtils = {
412
- isColumnHasColorRules: isColumnHasColorRules,
413
- hasRelatedColumnColorRule: hasRelatedColumnColorRule,
414
- isColumnColorRulesValid: isColumnColorRulesValid,
415
- isColumnColorsView: isColumnColorsView,
416
- getValidRulesColumns: getValidRulesColumns,
417
- getSortedViewRows: getSortedViewRows,
418
- getCellValue: getCellValue,
419
- getFormattedColumn: getFormattedColumn,
420
- getColumnColors: getColumnColors,
421
- updateColumnColorsByUpdateRows: updateColumnColorsByUpdateRows
422
- };
423
-
424
- exports["default"] = ColumnColorUtils;
@@ -1,123 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var selectOption = require('../constants/select-option.js');
6
-
7
- /**
8
- * Get options from single-select/multiple-select column.
9
- * @param {object} column e.g. { type, data: { options: [] } }
10
- * @returns options, array
11
- */
12
- var getColumnOptions = function getColumnOptions(column) {
13
- if (!column || !column.data || !Array.isArray(column.data.options)) {
14
- return [];
15
- }
16
- return column.data.options;
17
- };
18
- var generateOptionID = function generateOptionID(options) {
19
- if (options.length === 1) return String(Math.floor(Math.random() * Math.pow(10, 6)));
20
- var optionID;
21
- var isIDUnique = false;
22
- while (!isIDUnique) {
23
- optionID = String(Math.floor(Math.random() * Math.pow(10, 6)));
24
-
25
- // eslint-disable-next-line
26
- isIDUnique = options.every(function (option) {
27
- return option.id !== optionID;
28
- });
29
- if (isIDUnique) {
30
- break;
31
- }
32
- }
33
- return optionID;
34
- };
35
- var getRandomOptionColor = function getRandomOptionColor(options) {
36
- var defaultOptions = selectOption.SELECT_OPTION_COLORS.slice(12, 24);
37
- var colorIdx = Math.floor(Math.random() * defaultOptions.length);
38
- if (!Array.isArray(options) || options.length === 0) {
39
- return defaultOptions[colorIdx];
40
- }
41
-
42
- // Avoid using the same color for adjacent labels
43
- var adjacentOptions = options.slice(-(defaultOptions.length - 1));
44
- var adjacentOptionsColorIdxArr = [];
45
- var selectOptionColorObj = {};
46
- defaultOptions.forEach(function (colorItem, index) {
47
- selectOptionColorObj[colorItem.COLOR] = index;
48
- });
49
- adjacentOptions.forEach(function (option) {
50
- var optionColorIdx = selectOptionColorObj[option.color];
51
- adjacentOptionsColorIdxArr.push(optionColorIdx);
52
- });
53
-
54
- // eslint-disable-next-line
55
- while (adjacentOptionsColorIdxArr.indexOf(colorIdx) != -1) {
56
- colorIdx = Math.floor(Math.random() * defaultOptions.length);
57
- }
58
- return defaultOptions[colorIdx] || defaultOptions[0];
59
- };
60
- var createOption = function createOption(options, optionName) {
61
- var selectOptionColor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
62
- var id = generateOptionID(options);
63
- var optionColor = selectOptionColor && selectOption.SELECT_OPTION_COLORS.find(function (item) {
64
- return item.COLOR === selectOptionColor;
65
- });
66
- if (!optionColor) {
67
- optionColor = getRandomOptionColor(options);
68
- }
69
- return {
70
- id: id,
71
- name: optionName,
72
- color: optionColor.COLOR,
73
- textColor: optionColor.TEXT_COLOR
74
- };
75
- };
76
- var generatorCellOption = function generatorCellOption(options, optionName) {
77
- var existOption = options.find(function (option) {
78
- return option.name === optionName;
79
- });
80
- if (existOption) {
81
- return {
82
- selectedOptionId: existOption.id
83
- };
84
- }
85
- var newOption = createOption(options, optionName) || {};
86
- return {
87
- cellOption: newOption,
88
- selectedOptionId: newOption.id
89
- };
90
- };
91
- var generatorCellOptions = function generatorCellOptions(options, optionNames) {
92
- var cellOptions = [];
93
- var selectedOptionIds = [];
94
- optionNames.forEach(function (optionName) {
95
- var existingOption = options.find(function (option) {
96
- return option.name === optionName;
97
- });
98
- if (existingOption) {
99
- selectedOptionIds.push(existingOption.id);
100
- } else {
101
- var cellOption = createOption(options, optionName);
102
- if (cellOption) {
103
- cellOptions.push(cellOption);
104
- selectedOptionIds.push(cellOption.id);
105
- }
106
- }
107
- });
108
- if (cellOptions.length === 0) {
109
- return {
110
- selectedOptionIds: selectedOptionIds
111
- };
112
- }
113
- return {
114
- cellOptions: cellOptions,
115
- selectedOptionIds: selectedOptionIds
116
- };
117
- };
118
-
119
- exports.createOption = createOption;
120
- exports.generateOptionID = generateOptionID;
121
- exports.generatorCellOption = generatorCellOption;
122
- exports.generatorCellOptions = generatorCellOptions;
123
- exports.getColumnOptions = getColumnOptions;
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var COLOR_GRADATION_OPTIONS = {
6
- color_gradation_1: ['#FFFFFF', '#CAE9FF', '#9AC5FF', '#7DAAFF', '#5C90F9'],
7
- color_gradation_2: ['#5C90F9', '#7DAAFF', '#9AC5FF', '#CAE9FF', '#FFFFFF'],
8
- color_gradation_3: ['#FFFFFF', '#AAF7D2', '#74E6B6', '#42C090', '#17A675'],
9
- color_gradation_4: ['#17A675', '#42C090', '#74E6B6', '#AAF7D2', '#FFFFFF'],
10
- color_gradation_5: ['#FFFFFF', '#EBE2F1', '#D4C4E2', '#BFA8D4', '#A989C5'],
11
- color_gradation_6: ['#A989C5', '#BFA8D4', '#D4C4E2', '#EBE2F1', '#FFFFFF'],
12
- color_gradation_7: ['#FFFFFF', '#FBE2E1', '#F7C6C6', '#F3A9A9', '#F17F7E'],
13
- color_gradation_8: ['#F17F7E', '#F3A9A9', '#F7C6C6', '#FBE2E1', '#FFFFFF'],
14
- color_gradation_9: ['#FFFFFF', '#FFF2D4', '#FFE9B8', '#FFDD95', '#FFD470'],
15
- color_gradation_10: ['#FFD470', '#FFDD95', '#FFE9B8', '#FFF2D4', '#FFFFFF'],
16
- color_gradation_11: ['#FFFFFF', '#FEE6CE', '#FDD1A2', '#FDAD6B', '#FD8D3D'],
17
- color_gradation_12: ['#FD8D3D', '#FDAD6B', '#FDD1A2', '#FEE6CE', '#FFFFFF']
18
- };
19
-
20
- exports.COLOR_GRADATION_OPTIONS = COLOR_GRADATION_OPTIONS;
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var COLUMN_PERMISSION_TYPE = {
6
- NONE: 'none',
7
- ADMINS: 'admins',
8
- SPECIFIC_USERS: 'specific_users'
9
- };
10
-
11
- exports.COLUMN_PERMISSION_TYPE = COLUMN_PERMISSION_TYPE;
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var HEADER_HEIGHT_TYPE = {
6
- DEFAULT: 'default',
7
- DOUBLE: 'double'
8
- };
9
-
10
- exports.HEADER_HEIGHT_TYPE = HEADER_HEIGHT_TYPE;
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var cellType = require('./cell-type.js');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
11
-
12
- var _DISPLAY_GROUP_DATE_G, _DISPLAY_GROUP_GEOLOC;
13
- var MAX_GROUP_LEVEL = 3;
14
- var GROUP_DATE_GRANULARITY = {
15
- DAY: 'day',
16
- WEEK: 'week',
17
- MONTH: 'month',
18
- QUARTAR: 'quartar',
19
- YEAR: 'year'
20
- };
21
- var DISPLAY_GROUP_DATE_GRANULARITY = (_DISPLAY_GROUP_DATE_G = {}, _defineProperty__default["default"](_DISPLAY_GROUP_DATE_G, GROUP_DATE_GRANULARITY.DAY, 'By_day'), _defineProperty__default["default"](_DISPLAY_GROUP_DATE_G, GROUP_DATE_GRANULARITY.WEEK, 'By_week'), _defineProperty__default["default"](_DISPLAY_GROUP_DATE_G, GROUP_DATE_GRANULARITY.MONTH, 'By_month'), _defineProperty__default["default"](_DISPLAY_GROUP_DATE_G, GROUP_DATE_GRANULARITY.QUARTAR, 'By_quarter'), _defineProperty__default["default"](_DISPLAY_GROUP_DATE_G, GROUP_DATE_GRANULARITY.YEAR, 'By_year'), _DISPLAY_GROUP_DATE_G);
22
- var GROUP_GEOLOCATION_GRANULARITY = {
23
- PROVINCE: 'province',
24
- CITY: 'city',
25
- DISTRICT: 'district',
26
- COUNTRY: 'country'
27
- };
28
- var DISPLAY_GROUP_GEOLOCATION_GRANULARITY = (_DISPLAY_GROUP_GEOLOC = {}, _defineProperty__default["default"](_DISPLAY_GROUP_GEOLOC, GROUP_GEOLOCATION_GRANULARITY.PROVINCE, 'By_province'), _defineProperty__default["default"](_DISPLAY_GROUP_GEOLOC, GROUP_GEOLOCATION_GRANULARITY.CITY, 'By_city'), _defineProperty__default["default"](_DISPLAY_GROUP_GEOLOC, GROUP_GEOLOCATION_GRANULARITY.DISTRICT, 'By_district'), _DISPLAY_GROUP_GEOLOC);
29
- var SUPPORT_GROUP_COLUMN_TYPES = [cellType.CellType.TEXT, cellType.CellType.DATE, cellType.CellType.CTIME, cellType.CellType.MTIME, cellType.CellType.NUMBER, cellType.CellType.CHECKBOX, cellType.CellType.SINGLE_SELECT, cellType.CellType.MULTIPLE_SELECT, cellType.CellType.COLLABORATOR, cellType.CellType.CREATOR, cellType.CellType.GEOLOCATION, cellType.CellType.FORMULA, cellType.CellType.LINK_FORMULA, cellType.CellType.LINK, cellType.CellType.URL, cellType.CellType.EMAIL, cellType.CellType.DURATION, cellType.CellType.RATE, cellType.CellType.LAST_MODIFIER];
30
-
31
- exports.DISPLAY_GROUP_DATE_GRANULARITY = DISPLAY_GROUP_DATE_GRANULARITY;
32
- exports.DISPLAY_GROUP_GEOLOCATION_GRANULARITY = DISPLAY_GROUP_GEOLOCATION_GRANULARITY;
33
- exports.GROUP_DATE_GRANULARITY = GROUP_DATE_GRANULARITY;
34
- exports.GROUP_GEOLOCATION_GRANULARITY = GROUP_GEOLOCATION_GRANULARITY;
35
- exports.MAX_GROUP_LEVEL = MAX_GROUP_LEVEL;
36
- exports.SUPPORT_GROUP_COLUMN_TYPES = SUPPORT_GROUP_COLUMN_TYPES;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var CONVERT_ROW_COLUMNS_LIMIT = 500;
6
-
7
- exports.CONVERT_ROW_COLUMNS_LIMIT = CONVERT_ROW_COLUMNS_LIMIT;
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var REG_STRING_NUMBER_PARTS = /\d+|\D+/g;
6
- var REG_NUMBER_DIGIT = /\d/;
7
-
8
- exports.REG_NUMBER_DIGIT = REG_NUMBER_DIGIT;
9
- exports.REG_STRING_NUMBER_PARTS = REG_STRING_NUMBER_PARTS;
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cellType = require('./cell-type.js');
6
-
7
- var ROW_COLOR_TYPE = {
8
- BY_COLUMN: 'by_column',
9
- BY_RULES: 'by_rules',
10
- BY_DUPLICATE_VALUES: 'by_duplicate_values'
11
- };
12
- var SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES = [cellType.CellType.TEXT, cellType.CellType.NUMBER, cellType.CellType.DATE, cellType.CellType.DURATION, cellType.CellType.EMAIL, cellType.CellType.URL, cellType.CellType.RATE, cellType.CellType.CHECKBOX, cellType.CellType.COLLABORATOR, cellType.CellType.SINGLE_SELECT, cellType.CellType.MULTIPLE_SELECT, cellType.CellType.GEOLOCATION, cellType.CellType.FORMULA, cellType.CellType.CREATOR, cellType.CellType.LAST_MODIFIER];
13
- var ROW_COLOR_FOR_DUPLICATE_VALUES = '#F4667C';
14
-
15
- exports.ROW_COLOR_FOR_DUPLICATE_VALUES = ROW_COLOR_FOR_DUPLICATE_VALUES;
16
- exports.ROW_COLOR_TYPE = ROW_COLOR_TYPE;
17
- exports.SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES = SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES;
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cellType = require('./cell-type.js');
6
-
7
- var SORT_TYPE = {
8
- UP: 'up',
9
- DOWN: 'down'
10
- };
11
- var SORT_COLUMN_OPTIONS = [cellType.CellType.DATE, cellType.CellType.CTIME, cellType.CellType.MTIME, cellType.CellType.SINGLE_SELECT, cellType.CellType.TEXT, cellType.CellType.NUMBER, cellType.CellType.FORMULA, cellType.CellType.LINK_FORMULA, cellType.CellType.AUTO_NUMBER, cellType.CellType.COLLABORATOR, cellType.CellType.DURATION, cellType.CellType.URL, cellType.CellType.EMAIL, cellType.CellType.CHECKBOX, cellType.CellType.MULTIPLE_SELECT, cellType.CellType.LINK, cellType.CellType.RATE];
12
- var TEXT_SORTER_COLUMN_TYPES = [cellType.CellType.TEXT, cellType.CellType.URL, cellType.CellType.EMAIL];
13
- var NUMBER_SORTER_COLUMN_TYPES = [cellType.CellType.NUMBER, cellType.CellType.DURATION, cellType.CellType.RATE];
14
-
15
- exports.NUMBER_SORTER_COLUMN_TYPES = NUMBER_SORTER_COLUMN_TYPES;
16
- exports.SORT_COLUMN_OPTIONS = SORT_COLUMN_OPTIONS;
17
- exports.SORT_TYPE = SORT_TYPE;
18
- exports.TEXT_SORTER_COLUMN_TYPES = TEXT_SORTER_COLUMN_TYPES;