zent
Version:
一套前端设计语言和基于React的实现
40 lines (39 loc) • 1.1 kB
JavaScript
import { __spreadArray } from "tslib";
export function isPathEqual(x, y) {
if (x.length !== y.length) {
return false;
}
for (var i = 0; i < x.length; i++) {
if (x[i].value !== y[i].value) {
return false;
}
}
return true;
}
export function union(x, y) {
return y.reduce(function (acc, path) {
var match = acc.some(function (i) { return isPathEqual(i, path); });
if (!match) {
acc.push(path);
}
return acc;
}, __spreadArray([], x));
}
export function difference(x, y) {
return x.filter(function (i) { return y.every(function (j) { return !isPathEqual(i, j); }); });
}
export function getPathToNode(node) {
var parent = node;
var path = [];
while (parent) {
path.unshift(parent);
parent = parent.parent;
}
return path;
}
export var getPathLabel = function (path) {
return path.map(function (it) { return it.label; }).join(' / ');
};
export var getPathValue = function (path) {
return path.map(function (it) { return it.value; }).join('-');
};