'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _deepcopy = require('deepcopy');
var _deepcopy2 = _interopRequireDefault(_deepcopy);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/**
* (1, 3) => [1, 2, 3]
* (0, 2) => [0, 1]
*/
var makeArray = function makeArray(start, length) {
var arr = [];
for (var i = 0; i < length; i += 1) {
arr.push(start + i);
}
return arr;
};
exports['default'] = {
/**
* generate a virtual matrix used to generate real matrix with conflict detect
* @return {array} a virtual matrix if generated.
* @return {string} error message if conflict is detected.
*/
generateVM: function generateVM(data) {
var vm = [];
var numData = data.map(function (item) {
var newItem = (0, _deepcopy2['default'])(item);
['x', 'y', 'col', 'row'].forEach(function (key) {
newItem[key] = parseInt(newItem[key], 10);
});
return newItem;
});
// const realMatrix = [[]];
// let prevCell = { x: 0 };
// conflict detect
for (var i = 0; i < numData.length; i += 1) {
var cell = numData[i];
var indexArr = makeArray(cell.x, cell.col);
for (var j = 0; j < indexArr.length; j += 1) {
var index = indexArr[j];
if (!vm[index]) {
vm[index] = [];
}
for (var m = 0; m < cell.row; m += 1) {
if (vm[index][m + cell.y]) {
return 'Conflict detect: the conflicted cell is ' + JSON.stringify(cell);
}
vm[index][m + cell.y] = 1;
}
}
}
return {
numData: numData,
vm: vm
};
},
getSubTotal: function getSubTotal(arr) {
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var end = arguments[2];
if (typeof arr === 'string' || typeof arr === 'number') {
var _length = end - start;
var _total = 0;
for (var i = 0; i < _length; i += 1) {
_total += parseInt(arr, 10);
}
return _total;
}
console.log(arr);
var length = (end === undefined ? arr.length : end) - start;
var total = 0;
for (var _i = 0; _i < length; _i += 1) {
total += arr[start + _i] || arr[0];
}
return total;
},
/**
* get the largest array from a 2d array
*/
getLargestArr: function getLargestArr() {
var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var largest = [];
Iif (!arr) {
return largest;
}
for (var i = 0; i < arr.length; i += 1) {
var item = arr[i];
if (item.length > largest.length) {
largest = item;
}
}
return largest;
}
};
module.exports = exports['default'];
|