@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
51 lines (50 loc) • 1.21 kB
JavaScript
// packages/editor/src/utils/terms.js
import { decodeEntities } from "@wordpress/html-entities";
function buildTermsTree(flatTerms) {
const flatTermsWithParentAndChildren = flatTerms.map((term) => {
return {
children: [],
parent: void 0,
...term
};
});
if (flatTermsWithParentAndChildren.some(
({ parent }) => parent === void 0
)) {
return flatTermsWithParentAndChildren;
}
const termsById = /* @__PURE__ */ Object.create(null);
for (const term of flatTermsWithParentAndChildren) {
term.children = [];
termsById[term.id] = term;
}
const tree = [];
for (const term of flatTermsWithParentAndChildren) {
const parent = termsById[term.parent];
if (parent) {
parent.children.push(term);
} else if (`${term.parent}` === "0") {
tree.push(term);
}
}
return tree;
}
var unescapeString = (arg) => {
return decodeEntities(arg);
};
var unescapeTerm = (term) => {
return {
...term,
name: unescapeString(term.name)
};
};
var unescapeTerms = (terms) => {
return (terms ?? []).map(unescapeTerm);
};
export {
buildTermsTree,
unescapeString,
unescapeTerm,
unescapeTerms
};
//# sourceMappingURL=terms.mjs.map