1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _pick2 = require('lodash/pick');
|
8 |
|
9 | var _pick3 = _interopRequireDefault(_pick2);
|
10 |
|
11 | var _omit2 = require('lodash/omit');
|
12 |
|
13 | var _omit3 = _interopRequireDefault(_omit2);
|
14 |
|
15 | var _findIndex3 = require('lodash/findIndex');
|
16 |
|
17 | var _findIndex4 = _interopRequireDefault(_findIndex3);
|
18 |
|
19 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
20 |
|
21 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22 |
|
23 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
24 |
|
25 | var moveTreeRows = function moveTreeRows() {
|
26 | var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
27 | operation = _ref.operation,
|
28 | _ref$retain = _ref.retain,
|
29 | retain = _ref$retain === undefined ? [] : _ref$retain,
|
30 | _ref$idField = _ref.idField,
|
31 | idField = _ref$idField === undefined ? 'id' : _ref$idField,
|
32 | _ref$parentField = _ref.parentField,
|
33 | parentField = _ref$parentField === undefined ? 'parent' : _ref$parentField;
|
34 |
|
35 | if (!operation) {
|
36 | throw new Error('tree.moveRows - Missing operation!');
|
37 | }
|
38 |
|
39 | return function (rows) {
|
40 | var movedRows = operation(rows);
|
41 | var cancelMoving = false;
|
42 |
|
43 | if (movedRows) {
|
44 |
|
45 |
|
46 | movedRows = rows.map(function (row, i) {
|
47 | var _extends3;
|
48 |
|
49 | if (typeof row[parentField] === 'undefined' || row[parentField] === null) {
|
50 | var _extends2;
|
51 |
|
52 | return _extends({}, (0, _omit3.default)(movedRows[i], retain), (0, _pick3.default)(row, retain), (_extends2 = {}, _defineProperty(_extends2, idField, movedRows[i][idField]), _defineProperty(_extends2, parentField, undefined), _extends2));
|
53 | }
|
54 |
|
55 |
|
56 | var index = (0, _findIndex4.default)(rows, _defineProperty({}, idField, row[parentField]));
|
57 |
|
58 | if (index < 0) {
|
59 | console.warn(
|
60 | 'tree.moveRows - Failed to find the old parent', rows, row, idField, parentField);
|
61 |
|
62 | cancelMoving = true;
|
63 |
|
64 | return null;
|
65 | }
|
66 |
|
67 |
|
68 | var id = movedRows[index][idField];
|
69 |
|
70 | return _extends({}, (0, _omit3.default)(movedRows[i], retain), (0, _pick3.default)(row, retain), (_extends3 = {}, _defineProperty(_extends3, idField, movedRows[i][idField]), _defineProperty(_extends3, parentField, id), _extends3));
|
71 | });
|
72 | }
|
73 |
|
74 | if (cancelMoving) {
|
75 | return rows;
|
76 | }
|
77 |
|
78 | return movedRows;
|
79 | };
|
80 | };
|
81 |
|
82 | exports.default = moveTreeRows; |
\ | No newline at end of file |