dtable-utils 4.3.1 → 4.3.2-beta.2
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/column/core.js +16 -1
- package/es/constants/table-permission.js +8 -0
- package/es/index.js +7 -4
- package/es/link/core.js +40 -1
- package/es/row/convert.js +166 -0
- package/es/row/core.js +1 -169
- package/es/table/core.js +18 -1
- package/es/view/core.js +60 -1
- package/es/view/summaries.js +5 -1
- package/lib/column/core.js +16 -0
- package/lib/constants/table-permission.js +12 -0
- package/lib/index.js +32 -18
- package/lib/link/core.js +41 -0
- package/lib/row/convert.js +170 -0
- package/lib/row/core.js +0 -169
- package/lib/table/core.js +19 -0
- package/lib/view/core.js +64 -0
- package/lib/view/summaries.js +5 -1
- package/package.json +1 -1
package/lib/link/core.js
CHANGED
|
@@ -2,12 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
6
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
7
|
+
var core$1 = require('../column/core.js');
|
|
8
|
+
var core = require('../row/core.js');
|
|
9
|
+
var core$2 = require('../table/core.js');
|
|
10
|
+
var row = require('../table/row.js');
|
|
11
|
+
var cellType = require('../constants/cell-type.js');
|
|
6
12
|
|
|
7
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
14
|
|
|
15
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
9
16
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
10
17
|
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
|
|
11
21
|
/**
|
|
12
22
|
* Get link by id
|
|
13
23
|
* @param {array} links e.g. [{ _id, ... }, ...]
|
|
@@ -82,9 +92,40 @@ var getLinkCellValue = function getLinkCellValue(links, linkId, table1Id, table2
|
|
|
82
92
|
}
|
|
83
93
|
return _toConsumableArray__default["default"](linkedRowIds);
|
|
84
94
|
};
|
|
95
|
+
var getTableLinkRows = function getTableLinkRows(operateRows, table, value) {
|
|
96
|
+
var links = value.links,
|
|
97
|
+
tables = value.tables;
|
|
98
|
+
var currentTableId = table._id,
|
|
99
|
+
columns = table.columns;
|
|
100
|
+
var rows = core.isTableRows(operateRows) ? _toConsumableArray__default["default"](operateRows) : row.getRowsByIds(table, operateRows);
|
|
101
|
+
var linkColumns = core$1.getColumnsByType(columns, cellType.CellType.LINK);
|
|
102
|
+
var linkRows = {};
|
|
103
|
+
linkColumns.forEach(function (column) {
|
|
104
|
+
var key = column.key,
|
|
105
|
+
data = column.data;
|
|
106
|
+
var _ref = data || {},
|
|
107
|
+
link_id = _ref.link_id,
|
|
108
|
+
table_id = _ref.table_id,
|
|
109
|
+
other_table_id = _ref.other_table_id;
|
|
110
|
+
var linkedTableId = currentTableId === table_id ? other_table_id : table_id;
|
|
111
|
+
var linkedTable = core$2.getTableById(tables, linkedTableId);
|
|
112
|
+
rows.forEach(function (row) {
|
|
113
|
+
var rowId = row._id;
|
|
114
|
+
var linkedRowIds = linkedTable && getLinkCellValue(links, link_id, currentTableId, linkedTableId, rowId) || [];
|
|
115
|
+
|
|
116
|
+
// Handle the linked row has been deleted, but link still exists
|
|
117
|
+
linkedRowIds = linkedRowIds.filter(function (linkedRowId) {
|
|
118
|
+
return linkedTable.id_row_map[linkedRowId];
|
|
119
|
+
});
|
|
120
|
+
linkRows[rowId] = _objectSpread(_objectSpread({}, linkRows[rowId]), {}, _defineProperty__default["default"]({}, key, linkedRowIds));
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
return linkRows;
|
|
124
|
+
};
|
|
85
125
|
|
|
86
126
|
exports.getLinkById = getLinkById;
|
|
87
127
|
exports.getLinkCellValue = getLinkCellValue;
|
|
88
128
|
exports.getLinkTableID = getLinkTableID;
|
|
89
129
|
exports.getLinkedTableID = getLinkedTableID;
|
|
130
|
+
exports.getTableLinkRows = getTableLinkRows;
|
|
90
131
|
exports.isValidLink = isValidLink;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cellValue = require('../cell-value-get/cell-value.js');
|
|
6
|
+
var option = require('../cell-value-get/option.js');
|
|
7
|
+
var core = require('../link/core.js');
|
|
8
|
+
var common = require('../common.js');
|
|
9
|
+
var limit = require('../constants/limit.js');
|
|
10
|
+
var cellType = require('../constants/cell-type.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Convert row
|
|
14
|
+
* e.g. { '0000': 'a' } to { 'Name': 'a' }
|
|
15
|
+
* @param {object} row
|
|
16
|
+
* @param {object} value e.g. { links, ... }
|
|
17
|
+
* @param {object} table e.g. { _id, columns, ... }
|
|
18
|
+
* @param {object} view e.g. { hidden_columns, ... }
|
|
19
|
+
* @param {object} formulaResults computed value of formula, link-formula, link etc.
|
|
20
|
+
* @param {bool} convertLinkID use to convert link: get linked from formulaResults if true, otherwise get linked from links
|
|
21
|
+
* @param {func} debug use to debug if supplied
|
|
22
|
+
* @returns converted row, object
|
|
23
|
+
*/
|
|
24
|
+
var convertRow = function convertRow(row, value, table, view, formulaResults, convertLinkID) {
|
|
25
|
+
var _ref = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {},
|
|
26
|
+
debug = _ref.debug;
|
|
27
|
+
var result = {};
|
|
28
|
+
// eslint-disable-next-line
|
|
29
|
+
if (row.hasOwnProperty('_id')) {
|
|
30
|
+
result._id = row._id;
|
|
31
|
+
}
|
|
32
|
+
// eslint-disable-next-line
|
|
33
|
+
if (row.hasOwnProperty('_mtime')) {
|
|
34
|
+
result._mtime = row._mtime;
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line
|
|
37
|
+
if (row.hasOwnProperty('_ctime')) {
|
|
38
|
+
result._ctime = row._ctime;
|
|
39
|
+
}
|
|
40
|
+
var columns = table.columns;
|
|
41
|
+
if (columns.length > limit.CONVERT_ROW_COLUMNS_LIMIT) {
|
|
42
|
+
columns = columns.slice(0, limit.CONVERT_ROW_COLUMNS_LIMIT);
|
|
43
|
+
}
|
|
44
|
+
var hiddenColumns = view ? view.hidden_columns : null;
|
|
45
|
+
for (var i = 0; i < columns.length; i++) {
|
|
46
|
+
var column = columns[i];
|
|
47
|
+
var key = column.key,
|
|
48
|
+
type = column.type,
|
|
49
|
+
columnName = column.name;
|
|
50
|
+
if (hiddenColumns && hiddenColumns.includes(key)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
var cellValue$1 = row[key];
|
|
54
|
+
switch (type) {
|
|
55
|
+
case cellType.CellType.SINGLE_SELECT:
|
|
56
|
+
{
|
|
57
|
+
if (!column.data) {
|
|
58
|
+
if (debug) {
|
|
59
|
+
debug('No options found');
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
result[columnName] = option.getColumnOptionNameById(column, cellValue$1);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case cellType.CellType.MULTIPLE_SELECT:
|
|
67
|
+
{
|
|
68
|
+
if (!column.data) {
|
|
69
|
+
if (debug) {
|
|
70
|
+
debug('No options found');
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
if (!Array.isArray(cellValue$1)) {
|
|
75
|
+
result[columnName] = '';
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
var optionNames = [];
|
|
79
|
+
for (var optionIndex = 0; optionIndex < cellValue$1.length; optionIndex++) {
|
|
80
|
+
var optionName = option.getColumnOptionNameById(column, cellValue$1[optionIndex]);
|
|
81
|
+
if (optionName) {
|
|
82
|
+
optionNames.push(optionName);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
result[columnName] = optionNames;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case cellType.CellType.LONG_TEXT:
|
|
89
|
+
{
|
|
90
|
+
result[columnName] = cellValue$1 ? cellValue$1.text : '';
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case cellType.CellType.LINK:
|
|
94
|
+
{
|
|
95
|
+
if (!column.data) {
|
|
96
|
+
if (debug) {
|
|
97
|
+
debug('No links found');
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
// convertLinkID to display value
|
|
102
|
+
if (convertLinkID) {
|
|
103
|
+
// get values form formulaResults
|
|
104
|
+
var formulaRow = formulaResults && formulaResults[row._id];
|
|
105
|
+
var cellResult = formulaRow && formulaRow[key];
|
|
106
|
+
if (!Array.isArray(cellResult) || cellResult.length === 0) {
|
|
107
|
+
result[columnName] = null;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
// linked with common column:
|
|
111
|
+
// cellResult
|
|
112
|
+
// [
|
|
113
|
+
// {row_id: '', displayValue: ''},
|
|
114
|
+
// {row_id: '', displayValue: ''},
|
|
115
|
+
// ]
|
|
116
|
+
|
|
117
|
+
// linked with formula column and formula result is array
|
|
118
|
+
// cellResult
|
|
119
|
+
// [
|
|
120
|
+
// {row_id: '', display_value: []},
|
|
121
|
+
// {row_id: '', display_value: []},
|
|
122
|
+
// ]
|
|
123
|
+
result[columnName] = cellResult;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
var tableID = table._id;
|
|
127
|
+
var _column$data = column.data,
|
|
128
|
+
link_id = _column$data.link_id,
|
|
129
|
+
table_id = _column$data.table_id,
|
|
130
|
+
other_table_id = _column$data.other_table_id;
|
|
131
|
+
var otherTableID = tableID === table_id ? other_table_id : table_id;
|
|
132
|
+
var links = value.links;
|
|
133
|
+
result[columnName] = core.getLinkCellValue(links, link_id, tableID, otherTableID, row._id);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case cellType.CellType.FORMULA:
|
|
137
|
+
case cellType.CellType.LINK_FORMULA:
|
|
138
|
+
{
|
|
139
|
+
if (!column.data || !formulaResults) {
|
|
140
|
+
if (debug) {
|
|
141
|
+
debug('No formula found');
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
var _formulaRow = formulaResults[row._id] || {};
|
|
146
|
+
result[columnName] = cellValue.getFormulaDisplayString(_formulaRow[key], column.data);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
default:
|
|
150
|
+
{
|
|
151
|
+
// text/email/url/auto-number/
|
|
152
|
+
// check/
|
|
153
|
+
// rate/duration/
|
|
154
|
+
// file/image/button/
|
|
155
|
+
// translate in dtable-events
|
|
156
|
+
// number/
|
|
157
|
+
// date/ctime/mtime/
|
|
158
|
+
// geolocation/
|
|
159
|
+
// collaborator/creator/last-modifier/
|
|
160
|
+
result[columnName] = cellValue$1;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (common.isEmpty(result[columnName])) {
|
|
164
|
+
delete result[columnName];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return result;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
exports.convertRow = convertRow;
|
package/lib/row/core.js
CHANGED
|
@@ -3,16 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
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
|
-
require('../constants/formula.js');
|
|
10
|
-
var option = require('../cell-value-get/option.js');
|
|
11
|
-
require('../constants/group.js');
|
|
12
|
-
var core = require('../link/core.js');
|
|
13
|
-
var common = require('../common.js');
|
|
14
|
-
var cellType = require('../constants/cell-type.js');
|
|
15
|
-
var limit = require('../constants/limit.js');
|
|
16
6
|
|
|
17
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
8
|
|
|
@@ -27,163 +17,4 @@ var isTableRows = function isTableRows(rows) {
|
|
|
27
17
|
return Array.isArray(rows) && _typeof__default["default"](rows[0]) === 'object';
|
|
28
18
|
};
|
|
29
19
|
|
|
30
|
-
/**
|
|
31
|
-
* Convert row
|
|
32
|
-
* e.g. { '0000': 'a' } to { 'Name': 'a' }
|
|
33
|
-
* @param {object} row
|
|
34
|
-
* @param {object} value e.g. { links, ... }
|
|
35
|
-
* @param {object} table e.g. { _id, columns, ... }
|
|
36
|
-
* @param {object} view e.g. { hidden_columns, ... }
|
|
37
|
-
* @param {object} formulaResults computed value of formula, link-formula, link etc.
|
|
38
|
-
* @param {bool} convertLinkID use to convert link: get linked from formulaResults if true, otherwise get linked from links
|
|
39
|
-
* @param {func} debug use to debug if supplied
|
|
40
|
-
* @returns converted row, object
|
|
41
|
-
*/
|
|
42
|
-
var convertRow = function convertRow(row, value, table, view, formulaResults, convertLinkID) {
|
|
43
|
-
var _ref = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {},
|
|
44
|
-
debug = _ref.debug;
|
|
45
|
-
var result = {};
|
|
46
|
-
// eslint-disable-next-line
|
|
47
|
-
if (row.hasOwnProperty('_id')) {
|
|
48
|
-
result._id = row._id;
|
|
49
|
-
}
|
|
50
|
-
// eslint-disable-next-line
|
|
51
|
-
if (row.hasOwnProperty('_mtime')) {
|
|
52
|
-
result._mtime = row._mtime;
|
|
53
|
-
}
|
|
54
|
-
// eslint-disable-next-line
|
|
55
|
-
if (row.hasOwnProperty('_ctime')) {
|
|
56
|
-
result._ctime = row._ctime;
|
|
57
|
-
}
|
|
58
|
-
var columns = table.columns;
|
|
59
|
-
if (columns.length > limit.CONVERT_ROW_COLUMNS_LIMIT) {
|
|
60
|
-
columns = columns.slice(0, limit.CONVERT_ROW_COLUMNS_LIMIT);
|
|
61
|
-
}
|
|
62
|
-
var hiddenColumns = view ? view.hidden_columns : null;
|
|
63
|
-
for (var i = 0; i < columns.length; i++) {
|
|
64
|
-
var column = columns[i];
|
|
65
|
-
var key = column.key,
|
|
66
|
-
type = column.type,
|
|
67
|
-
columnName = column.name;
|
|
68
|
-
if (hiddenColumns && hiddenColumns.includes(key)) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
var cellValue$1 = row[key];
|
|
72
|
-
switch (type) {
|
|
73
|
-
case cellType.CellType.SINGLE_SELECT:
|
|
74
|
-
{
|
|
75
|
-
if (!column.data) {
|
|
76
|
-
if (debug) {
|
|
77
|
-
debug('No options found');
|
|
78
|
-
}
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
result[columnName] = option.getColumnOptionNameById(column, cellValue$1);
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
case cellType.CellType.MULTIPLE_SELECT:
|
|
85
|
-
{
|
|
86
|
-
if (!column.data) {
|
|
87
|
-
if (debug) {
|
|
88
|
-
debug('No options found');
|
|
89
|
-
}
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
if (!Array.isArray(cellValue$1)) {
|
|
93
|
-
result[columnName] = '';
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
var optionNames = [];
|
|
97
|
-
for (var optionIndex = 0; optionIndex < cellValue$1.length; optionIndex++) {
|
|
98
|
-
var optionName = option.getColumnOptionNameById(column, cellValue$1[optionIndex]);
|
|
99
|
-
if (optionName) {
|
|
100
|
-
optionNames.push(optionName);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
result[columnName] = optionNames;
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
case cellType.CellType.LONG_TEXT:
|
|
107
|
-
{
|
|
108
|
-
result[columnName] = cellValue$1 ? cellValue$1.text : '';
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
case cellType.CellType.LINK:
|
|
112
|
-
{
|
|
113
|
-
if (!column.data) {
|
|
114
|
-
if (debug) {
|
|
115
|
-
debug('No links found');
|
|
116
|
-
}
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
// convertLinkID to display value
|
|
120
|
-
if (convertLinkID) {
|
|
121
|
-
// get values form formulaResults
|
|
122
|
-
var formulaRow = formulaResults && formulaResults[row._id];
|
|
123
|
-
var cellResult = formulaRow && formulaRow[key];
|
|
124
|
-
if (!Array.isArray(cellResult) || cellResult.length === 0) {
|
|
125
|
-
result[columnName] = null;
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
// linked with common column:
|
|
129
|
-
// cellResult
|
|
130
|
-
// [
|
|
131
|
-
// {row_id: '', displayValue: ''},
|
|
132
|
-
// {row_id: '', displayValue: ''},
|
|
133
|
-
// ]
|
|
134
|
-
|
|
135
|
-
// linked with formula column and formula result is array
|
|
136
|
-
// cellResult
|
|
137
|
-
// [
|
|
138
|
-
// {row_id: '', display_value: []},
|
|
139
|
-
// {row_id: '', display_value: []},
|
|
140
|
-
// ]
|
|
141
|
-
result[columnName] = cellResult;
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
var tableID = table._id;
|
|
145
|
-
var _column$data = column.data,
|
|
146
|
-
link_id = _column$data.link_id,
|
|
147
|
-
table_id = _column$data.table_id,
|
|
148
|
-
other_table_id = _column$data.other_table_id;
|
|
149
|
-
var otherTableID = tableID === table_id ? other_table_id : table_id;
|
|
150
|
-
var links = value.links;
|
|
151
|
-
result[columnName] = core.getLinkCellValue(links, link_id, tableID, otherTableID, row._id);
|
|
152
|
-
break;
|
|
153
|
-
}
|
|
154
|
-
case cellType.CellType.FORMULA:
|
|
155
|
-
case cellType.CellType.LINK_FORMULA:
|
|
156
|
-
{
|
|
157
|
-
if (!column.data || !formulaResults) {
|
|
158
|
-
if (debug) {
|
|
159
|
-
debug('No formula found');
|
|
160
|
-
}
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
var _formulaRow = formulaResults[row._id] || {};
|
|
164
|
-
result[columnName] = cellValue.getFormulaDisplayString(_formulaRow[key], column.data);
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
default:
|
|
168
|
-
{
|
|
169
|
-
// text/email/url/auto-number/
|
|
170
|
-
// check/
|
|
171
|
-
// rate/duration/
|
|
172
|
-
// file/image/button/
|
|
173
|
-
// translate in dtable-events
|
|
174
|
-
// number/
|
|
175
|
-
// date/ctime/mtime/
|
|
176
|
-
// geolocation/
|
|
177
|
-
// collaborator/creator/last-modifier/
|
|
178
|
-
result[columnName] = cellValue$1;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
if (common.isEmpty(result[columnName])) {
|
|
182
|
-
delete result[columnName];
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return result;
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
exports.convertRow = convertRow;
|
|
189
20
|
exports.isTableRows = isTableRows;
|
package/lib/table/core.js
CHANGED
|
@@ -15,4 +15,23 @@ var getTableById = function getTableById(tables, tableId) {
|
|
|
15
15
|
});
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Get table by name
|
|
20
|
+
* @param {array} tables
|
|
21
|
+
* @param {string} tableName
|
|
22
|
+
* @returns table, object
|
|
23
|
+
*/
|
|
24
|
+
var getTableByName = function getTableByName(tables, tableName) {
|
|
25
|
+
if (!Array.isArray(tables) || !tableName) return null;
|
|
26
|
+
return tables.find(function (table) {
|
|
27
|
+
return table.name === tableName;
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var getTableByIndex = function getTableByIndex(tables, tableIndex) {
|
|
31
|
+
if (!Array.isArray(tables) || tableIndex < 0) return null;
|
|
32
|
+
return tables[tableIndex];
|
|
33
|
+
};
|
|
34
|
+
|
|
18
35
|
exports.getTableById = getTableById;
|
|
36
|
+
exports.getTableByIndex = getTableByIndex;
|
|
37
|
+
exports.getTableByName = getTableByName;
|
package/lib/view/core.js
CHANGED
|
@@ -20,6 +20,28 @@ var getViewById = function getViewById(views, viewId) {
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Get view by name
|
|
25
|
+
* @param {array} views
|
|
26
|
+
* @param {string} viewName
|
|
27
|
+
* @returns view, object
|
|
28
|
+
*/
|
|
29
|
+
var getViewByName = function getViewByName(views, viewName) {
|
|
30
|
+
if (!Array.isArray(views) || !viewName) return null;
|
|
31
|
+
return views.find(function (view) {
|
|
32
|
+
return view.name === viewName;
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Check whether the view is archived
|
|
38
|
+
* @param {object} view
|
|
39
|
+
* @returns bool
|
|
40
|
+
*/
|
|
41
|
+
var isArchiveView = function isArchiveView(view) {
|
|
42
|
+
return view.type === 'archive';
|
|
43
|
+
};
|
|
44
|
+
|
|
23
45
|
/**
|
|
24
46
|
* Check whether the view contains filters
|
|
25
47
|
* @param {object} view e.g. { filters, ... }
|
|
@@ -53,6 +75,17 @@ var isSortView = function isSortView(view, columns) {
|
|
|
53
75
|
return validSorts.length > 0;
|
|
54
76
|
};
|
|
55
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Check whether the view has hidden columns
|
|
80
|
+
* @param {object} view e.g. { hidden_columns, ... }
|
|
81
|
+
* @returns bool
|
|
82
|
+
*/
|
|
83
|
+
var isHiddenColumnsView = function isHiddenColumnsView(view) {
|
|
84
|
+
var _ref = view || {},
|
|
85
|
+
hidden_columns = _ref.hidden_columns;
|
|
86
|
+
return Array.isArray(hidden_columns) && hidden_columns.length > 0;
|
|
87
|
+
};
|
|
88
|
+
|
|
56
89
|
/**
|
|
57
90
|
* Check is default view which no contains filters, sorts, groupbys etc.
|
|
58
91
|
* @param {object} view e.g. { filters, groupbys, sorts, ... }
|
|
@@ -135,9 +168,40 @@ var getLinkColumnsUsedInFilters = function getLinkColumnsUsedInFilters(view, tab
|
|
|
135
168
|
return linkColumns;
|
|
136
169
|
};
|
|
137
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Get no-archived views
|
|
173
|
+
* @param {array} views
|
|
174
|
+
* @returns no-archived views, array
|
|
175
|
+
*/
|
|
176
|
+
var getNonArchiveViews = function getNonArchiveViews(views) {
|
|
177
|
+
if (!Array.isArray(views)) {
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
return views.filter(function (view) {
|
|
181
|
+
return !isArchiveView(view);
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
var getViewShownColumns = function getViewShownColumns(view, columns) {
|
|
185
|
+
if (!Array.isArray(columns)) {
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
if (!isHiddenColumnsView(view)) {
|
|
189
|
+
return columns;
|
|
190
|
+
}
|
|
191
|
+
var hidden_columns = view.hidden_columns;
|
|
192
|
+
return columns.filter(function (column) {
|
|
193
|
+
return !hidden_columns.includes(column.key);
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
|
|
138
197
|
exports.getLinkColumnsUsedInFilters = getLinkColumnsUsedInFilters;
|
|
198
|
+
exports.getNonArchiveViews = getNonArchiveViews;
|
|
139
199
|
exports.getViewById = getViewById;
|
|
200
|
+
exports.getViewByName = getViewByName;
|
|
201
|
+
exports.getViewShownColumns = getViewShownColumns;
|
|
202
|
+
exports.isArchiveView = isArchiveView;
|
|
140
203
|
exports.isDefaultView = isDefaultView;
|
|
141
204
|
exports.isFilterView = isFilterView;
|
|
142
205
|
exports.isGroupView = isGroupView;
|
|
206
|
+
exports.isHiddenColumnsView = isHiddenColumnsView;
|
|
143
207
|
exports.isSortView = isSortView;
|
package/lib/view/summaries.js
CHANGED
|
@@ -4,9 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var row = require('../table/row.js');
|
|
6
6
|
var core = require('../row/core.js');
|
|
7
|
+
require('../cell-value-get/cell-value.js');
|
|
8
|
+
require('@babel/runtime/helpers/defineProperty');
|
|
9
|
+
require('@babel/runtime/helpers/toConsumableArray');
|
|
10
|
+
var formula = require('../constants/formula.js');
|
|
11
|
+
require('@babel/runtime/helpers/typeof');
|
|
7
12
|
var number = require('../column/number.js');
|
|
8
13
|
var number$1 = require('../number.js');
|
|
9
|
-
var formula = require('../constants/formula.js');
|
|
10
14
|
|
|
11
15
|
/**
|
|
12
16
|
* Calculate summaries of table numeric columns
|