kea-react
Version:
Componentes comunes de react
73 lines (72 loc) • 2.44 kB
JavaScript
;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
/**Convierte un objeto a un arbol que se puede visualizar con el tree view */
function valueToJsonTreeView(obj) {
function jsonTreeToView(tree) {
var key = tree.key, value = tree.value, children = tree.children;
return { key: key, value: value, children: children.map(jsonTreeToView) };
}
return jsonTreeToView(valueToJsonTree(obj));
}
exports.valueToJsonTreeView = valueToJsonTreeView;
function valueToJsonTree(value) {
var jvalue = valueToJsonValue(value);
var children = (function () {
switch (jvalue.tree) {
case "leaf":
return [];
case "object": {
return Object.keys(value).map(function (key) { return (__assign({}, valueToJsonTree(value[key]), { key: key })); });
}
case "array": {
var arr = value;
var ret = [];
for (var i = 0; i < arr.length; i++) {
ret.push(__assign({}, valueToJsonTree(arr[i]), { key: i }));
}
return ret;
}
}
})();
return {
value: jvalue,
children: children,
key: ""
};
}
function valueToJsonValue(value) {
if (value == null) {
return { value: null, type: "null", tree: "leaf", count: 0 };
}
;
if (typeof value == "number" || typeof value == "string" || typeof value == "boolean") {
return {
value: value,
type: typeof value,
tree: "leaf",
count: 0
};
}
else if (typeof value == "function") {
return { value: null, type: "function", tree: "leaf", count: 0 };
}
else if (isArray(value)) {
return { value: null, type: "array", tree: "array", count: value.length };
}
else {
var keys = Object.keys(value);
return { value: null, type: "object", tree: "object", count: keys.length };
}
}
function isArray(obj) {
var arr = obj;
return arr.length != null;
}