viewof termTiles = {
let allTerms = data.reduce((acc, cur) => {
if (acc.indexOf(cur.term) == -1 && cur.term != "") {
acc.push(cur.term);
}
return acc;
}, []);
let activeTerms = [];
allTerms.sort();
let termsEle = () => {
let holder = document.createElement("div");
holder.id = "termsHolder";
for (let term of allTerms) {
let termEle = document.createElement("div");
termEle.className = "termTile";
termEle.innerHTML = term;
termEle.addEventListener("click", e => {
console.log("clicked", term);
if (activeTerms.indexOf(term) == -1) {
activeTerms.push(term);
termEle.classList.add("activeTerm");
} else {
termEle.classList.remove("activeTerm");
activeTerms.pop(term);
}
});
holder.append(termEle);
}
return holder;
};
let res = termsEle();
res.addEventListener("click", () => {
console.log("updating value", activeTerms);
if (document.querySelectorAll(".activeTerm").length == 0) {
activeTerms = [];
}
res.value = [...activeTerms];
res.dispatchEvent(new CustomEvent("input"));
});
return res;
}