tree4 = new mar10.Wunderbaum({
id: "demo3",
element: document.querySelector("#demo-tree-4"),
source: "https://cdn.jsdelivr.net/gh/mar10/assets@master/wunderbaum/ajax_1k_3_54_t_c.json",
debugLevel: 5,
connectTopBreadcrumb: document.getElementById("parentPath"),
fixedCol: true,
navigationModeOption: "cell",
// filter: {
// connectInput: "input#filterQuery",
// // mode: "dim",
// },
init: (e) => {
// e.tree.setFocus();
},
load: function (e) {
// e.tree.addChildren({ title: "custom1", classes: "wb-error" });
},
// lazyLoad: function (e) {
// console.log(e.type, e);
// // return { url: "../assets/ajax-lazy-products.json" };
// return new Promise((resolve, reject) => {
// setTimeout(() => {
// // reject("Epic fail")
// resolve({ url: "../assets/ajax-lazy-products.json" });
// }, 1500);
// });
// },
change: function (e) {
const info = e.info;
const colId = info.colId;
console.log(e.type, e);
// For demo purposes, simulate a backend delay:
return e.util.setTimeoutPromise(() => {
// Assumption: we named column.id === node.data.NAME
switch (colId) {
case "sale":
case "details":
e.node.data[colId] = e.inputValue;
break;
}
// e.node.setModified()
}, 500);
},
render: function (e) {
// console.log(e.type, e.isNew, e);
const node = e.node;
const util = e.util;
for (const col of Object.values(e.renderColInfosById)) {
// Assumption: we named column.id === node.data.NAME
const val = node.data[col.id];
switch (col.id) {
case "date":
if (val) {
const dt = new Date(val)
col.elem.textContent = dt.toISOString().slice(0, 10);
} else {
col.elem.textContent = "n.a.";
}
break
case "mood":
const map = { "h": "Happy", "s": "Sad" }
col.elem.textContent = map[val] || "";
break
case "price":
col.elem.textContent = "$ " + val.toFixed(2);
break;
case "qty": // thousands separator
col.elem.textContent = val.toLocaleString();
break;
case "details": // text control
if (e.isNew) {
col.elem.innerHTML = "<input type='text'>";
}
util.setValueToElem(col.elem, val);
break;
default:
// Assumption: we named column.id === node.data.NAME
if (typeof val === "boolean") {
col.elem.textContent = val ? "X" : "";
} else {
col.elem.textContent = val;
}
break;
}
}
},
});