UNPKG

1.34 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _isNil2 = require('lodash/isNil');
8
9var _isNil3 = _interopRequireDefault(_isNil2);
10
11function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13function getParents() {
14 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
15 index = _ref.index,
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 var parents = [];
23 var currentIndex = index;
24 var cell = rows[index];
25 var searchingParent = void 0;
26
27 if (!cell || (0, _isNil3.default)(cell[parentField])) {
28 return parents;
29 }
30
31 while (cell) {
32 if (typeof searchingParent === 'undefined') {
33 searchingParent = cell[parentField];
34 } else if (searchingParent === cell[idField]) {
35 parents.unshift(cell);
36 searchingParent = cell[parentField];
37 }
38
39 if (cell[parentField] === null || typeof cell[parentField] === 'undefined') {
40 break;
41 }
42
43 currentIndex -= 1;
44 cell = rows[currentIndex];
45 }
46
47 return parents;
48 };
49}
50
51exports.default = getParents;
\No newline at end of file