1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _getParents = require('./get-parents');
|
8 |
|
9 | var _getParents2 = _interopRequireDefault(_getParents);
|
10 |
|
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12 |
|
13 | var filterTree = function filterTree() {
|
14 | var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
15 | fieldName = _ref.fieldName,
|
16 | _ref$idField = _ref.idField,
|
17 | idField = _ref$idField === undefined ? 'id' : _ref$idField,
|
18 | _ref$parentField = _ref.parentField,
|
19 | parentField = _ref$parentField === undefined ? 'parent' : _ref$parentField;
|
20 |
|
21 | return function (rows) {
|
22 | if (!fieldName) {
|
23 | throw new Error('tree.filterTree - Missing fieldName!');
|
24 | }
|
25 |
|
26 | return rows.filter(function (row, index) {
|
27 | if (typeof row[parentField] === 'undefined' || row[parentField] === null) {
|
28 | return true;
|
29 | }
|
30 |
|
31 | var parents = (0, _getParents2.default)({ index: index, idField: idField, parentField: parentField })(rows);
|
32 |
|
33 | return parents.filter(function (parent) {
|
34 | return parent[fieldName];
|
35 | }).length === parents.length;
|
36 | });
|
37 | };
|
38 | };
|
39 |
|
40 | exports.default = filterTree; |
\ | No newline at end of file |