1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _isNil2 = require('lodash/isNil');
|
8 |
|
9 | var _isNil3 = _interopRequireDefault(_isNil2);
|
10 |
|
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12 |
|
13 | function 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 |
|
51 | exports.default = getParents; |
\ | No newline at end of file |