@alifd/meet-react
Version:
Fusion Mobile React UI System Component
94 lines (93 loc) • 2.17 kB
JavaScript
;
exports.__esModule = true;
exports.formatNewIndexByLast = formatNewIndexByLast;
exports.getDataArray = getDataArray;
exports.getDataArrayByIndex = getDataArrayByIndex;
exports.getIndex = getIndex;
function getDataArray(data, value, cascade) {
if (data === void 0) {
data = [];
}
if (!cascade) {
return data;
}
if (Array.isArray(data) && data.length === 0) {
return data;
}
var array = [].concat(data);
var ret = [data];
var values = [].concat(value);
if (values.length === 0 && data.length > 0) {
values.push(data[0].value);
}
var i = 0;
while (array.length > 0) {
var _ref = array.find(function (it) {
return it.value === values[i];
}) || array[0],
_ref$children = _ref.children,
children = _ref$children === void 0 ? [] : _ref$children;
if (children.length > 0) {
ret.push(children);
}
array = children;
i++;
}
return ret;
}
function getDataArrayByIndex(data, indexList, cascade) {
if (indexList === void 0) {
indexList = [];
}
if (!cascade) {
return data;
}
var i = 0;
var array = [].concat(data);
var ret = [data];
while (array && array.length > 0) {
var index = indexList[i] || 0;
if (index !== 0 && index >= array.length) {
index = array.length - 1;
}
var children = array[index].children;
if (children) {
ret.push(children);
}
array = children;
i++;
}
return ret;
}
function getIndex(dataArray, value) {
return dataArray.reduce(function (rs, arr, index) {
arr.forEach(function (obj, j) {
if (obj.value === value[index]) {
rs = rs.concat(j);
}
});
return rs;
}, []);
}
function formatNewIndexByLast(newIndex, lastIndex) {
if (newIndex === void 0) {
newIndex = [];
}
if (lastIndex === void 0) {
lastIndex = [];
}
var isSame = true;
if (!lastIndex.length) {
return newIndex;
}
return newIndex.map(function (val, index) {
if (!isSame) {
return 0;
} else if (lastIndex[index] !== undefined && val === lastIndex[index]) {
return val;
} else {
isSame = false;
return val;
}
});
}